方法1 :利用Struts 2的支持的可配置結(jié)果,可以達(dá)到過濾器的效果。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攔截器的用法與此類同,如果攔截的僅僅是一個(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的方法只要沒指定不序列化,都會(huì)執(zhí)行。 如果該方法一定要命名為get*(比如實(shí)現(xiàn)了什么接口), 那么可以在該方法的前面加注解聲明該方法不做序列化。
注解的方式為:@JSON(serialize=false)
除此之外,JSON注釋還支持如下幾個(gè)域:
//使用注釋語法來改變?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í)有所幫助,也希望大家多多支持武林網(wǎng)。
新聞熱點(diǎn)
疑難解答
圖片精選