詳解Struts2中json 相互引用死循環(huán)解決辦法
方法1 :利用Struts 2的支持的可配置結(jié)果,可以達(dá)到過(guò)濾器的效果。Action的處理結(jié)果配置支持正則表達(dá)式。
但是如果返回的對(duì)象是一個(gè)數(shù)組格式的Json數(shù)據(jù)。比如peson Bean中有對(duì)象persion1…person9,而我只要person1的json數(shù)據(jù), 則可以用如下的正則表達(dá)式。
<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攔截器的用法與此類(lèi)同,如果攔截的僅僅是一個(gè)對(duì)象,如果攔截掉person Bean的整個(gè)對(duì)象。
<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方法都會(huì)序列化
所以前面是get的方法只要沒(méi)指定不序列化,都會(huì)執(zhí)行。 如果該方法一定要命名為get*(比如實(shí)現(xiàn)了什么接口), 那么可以在該方法的前面加注解聲明該方法不做序列化。
注解的方式為:@JSON(serialize=false)
除此之外,JSON注釋還支持如下幾個(gè)域:
- serialize:設(shè)置是否序列化該屬性
- deserialize:設(shè)置是否反序列化該屬性。
- format:設(shè)置用于格式化輸出、解析日期表單域的格式。例如”yyyy-MM-dd'T'HH:mm:ss”。
//使用注釋語(yǔ)法來(lái)改變?cè)搶傩孕蛄谢蟮膶傩悦?
@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;
}
以上就是本文的全部?jī)?nèi)容,希望對(duì)大家的學(xué)習(xí)有所幫助,也希望大家多多支持腳本之家。
相關(guān)文章
Java?String類(lèi)和StringBuffer類(lèi)的區(qū)別介紹
這篇文章主要介紹了Java?String類(lèi)和StringBuffer類(lèi)的區(qū)別,?關(guān)于java的字符串處理我們一般使用String類(lèi)和StringBuffer類(lèi)有什么不同呢,下面我們一起來(lái)看看詳細(xì)介紹吧2022-03-03
實(shí)例詳解java Struts2的配置與簡(jiǎn)單案例
這篇文章主要介紹了java Struts2的配置與簡(jiǎn)單案例,需要的朋友可以參考下2017-04-04
idea的spring boot項(xiàng)目實(shí)現(xiàn)更改端口號(hào)操作
這篇文章主要介紹了idea的spring boot項(xiàng)目實(shí)現(xiàn)更改端口號(hào)操作,具有很好的參考價(jià)值,希望對(duì)大家有所幫助。一起跟隨小編過(guò)來(lái)看看吧2020-09-09
java簡(jiǎn)單實(shí)現(xiàn)多線(xiàn)程及線(xiàn)程池實(shí)例詳解
這篇文章主要為大家詳細(xì)介紹了java簡(jiǎn)單實(shí)現(xiàn)多線(xiàn)程,及java爬蟲(chóng)使用線(xiàn)程池實(shí)例,具有一定的參考價(jià)值,感興趣的小伙伴們可以參考一下2018-03-03
java Apache poi 對(duì)word doc文件進(jìn)行讀寫(xiě)操作
這篇文章主要介紹了Apache poi 對(duì)word doc文件進(jìn)行讀寫(xiě)操作的相關(guān)資料,需要的朋友可以參考下2017-01-01
SpringMVC @ResponseBody 415錯(cuò)誤處理方式
這篇文章主要介紹了SpringMVC @ResponseBody 415錯(cuò)誤處理方式,具有很好的參考價(jià)值,希望對(duì)大家有所幫助。如有錯(cuò)誤或未考慮完全的地方,望不吝賜教2021-11-11
Java多維數(shù)組和Arrays類(lèi)方法總結(jié)詳解
這篇文章主要介紹了Java多維數(shù)組和Arrays類(lèi)方法總結(jié)詳解,文中通過(guò)示例代碼介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友可以參考下2020-03-03

