詳解Struts2中json 相互引用死循環(huán)解決辦法
方法1 :利用Struts 2的支持的可配置結(jié)果,可以達到過濾器的效果。Action的處理結(jié)果配置支持正則表達式。
但是如果返回的對象是一個數(shù)組格式的Json數(shù)據(jù)。比如peson Bean中有對象persion1…person9,而我只要person1的json數(shù)據(jù), 則可以用如下的正則表達式。
<struts>
<constant name="struts.objectFactory" value="spring"/>
<include file="struts-admin.xml"></include>
<package name="default" extends="json-default">
<action name="person" class="com.person.PersonAction" method="view">
<result type="json">
<param name="includeProperties">
person/[/d+/]/.person1
</param>>
</result>
</action>
</package>
</struts>
excludeProperties攔截器的用法與此類同,如果攔截的僅僅是一個對象,如果攔截掉person Bean的整個對象。
<struts>
<constant name="struts.objectFactory" value="spring"/>
<include file="struts-admin.xml"></include>
<package name="default" extends="json-default">
<action name="person" class="com.person.PersonAction" method="view">
<result type="json">
<param name="excludeProperties">
person
</param>>
</result>
</action>
</package>
</struts>
方法2:需要注意的是,如果用JSON插件把返回結(jié)果定為JSON。而JSON的原理是在ACTION中的get方法都會序列化
所以前面是get的方法只要沒指定不序列化,都會執(zhí)行。 如果該方法一定要命名為get*(比如實現(xiàn)了什么接口), 那么可以在該方法的前面加注解聲明該方法不做序列化。
注解的方式為:@JSON(serialize=false)
除此之外,JSON注釋還支持如下幾個域:
- serialize:設(shè)置是否序列化該屬性
- deserialize:設(shè)置是否反序列化該屬性。
- format:設(shè)置用于格式化輸出、解析日期表單域的格式。例如”yyyy-MM-dd'T'HH:mm:ss”。
//使用注釋語法來改變該屬性序列化后的屬性名
@JSON(name="newName")
public String getName()
{
return this.name;
}
需要引入 import org.apache.struts2.json.annotations.JSON;
@JSON(serialize=false)
public User getUser() {
return this.User;
}
@JSON(format="yyyy-MM-dd")
public Date getStartDate() {
return this.startDate;
}
以上就是本文的全部內(nèi)容,希望對大家的學(xué)習(xí)有所幫助,也希望大家多多支持腳本之家。
相關(guān)文章
Java?String類和StringBuffer類的區(qū)別介紹
這篇文章主要介紹了Java?String類和StringBuffer類的區(qū)別,?關(guān)于java的字符串處理我們一般使用String類和StringBuffer類有什么不同呢,下面我們一起來看看詳細介紹吧2022-03-03
idea的spring boot項目實現(xiàn)更改端口號操作
這篇文章主要介紹了idea的spring boot項目實現(xiàn)更改端口號操作,具有很好的參考價值,希望對大家有所幫助。一起跟隨小編過來看看吧2020-09-09
java Apache poi 對word doc文件進行讀寫操作
這篇文章主要介紹了Apache poi 對word doc文件進行讀寫操作的相關(guān)資料,需要的朋友可以參考下2017-01-01
SpringMVC @ResponseBody 415錯誤處理方式
這篇文章主要介紹了SpringMVC @ResponseBody 415錯誤處理方式,具有很好的參考價值,希望對大家有所幫助。如有錯誤或未考慮完全的地方,望不吝賜教2021-11-11
Java多維數(shù)組和Arrays類方法總結(jié)詳解
這篇文章主要介紹了Java多維數(shù)組和Arrays類方法總結(jié)詳解,文中通過示例代碼介紹的非常詳細,對大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價值,需要的朋友可以參考下2020-03-03

