Struts2返回JSON物件總結

2021-08-25 10:45:39 字數 1353 閱讀 5890

[b]1.匯入jsonplugin包[/b]

struts2.1.8匯入struts2-json-plugin-2.1.8.1.jar(struts2 lib下有)

struts2.2.1匯入struts2-json-plugin-2.2.1.jar(struts2 lib下有)

[b]2.struts.xml中package 中extends="json-default"[/b]

[b]3.result 中type="json"[/b]

user\.id

userinfoslist\[\d+\]\.username,userinfoslist\[\d+\]\.password

user

user

false

[b]4.避免使用get開頭的action方法[/b]

在屬性get方法上面加

@json(name="newname")json中的名稱

@json(serialize=false) 該屬性不被加入json

@json(format="yyyy-mm-dd") 格式化日期

[b]5.在action中賦值,返回對應的result字串[/b]

[b]說明:[/b]

為什麼要用includeproperties或excludeproperties 引數:主要是為了過濾掉介面,pojo的set、list、其它物件等不需要的資料防止迴圈取其它關聯物件或找不到介面。如果不配置,預設是處理action中的所有屬性,如果action中有介面注入,json***可能找不到介面而返回不了結果,還有如果action中有乙個物件,這個物件與好多物件都有關聯,json***會將相關聯的所有物件的屬性全部轉換成json格式,如果其它物件有list、set,其返回結果相當龐大,有可能是死迴圈而無法返回 。如果不用或其他方式進行json資料過濾,通過debug你會發現前台返回的json字串,是把action中的所有屬性全部轉化成json字串返回給客戶端(包括service介面、pojo所有屬性及有關聯的pojo。有時候根本返回不了結果,也不報錯,後台執行了,但前台執行不到callback function,這主要是因為找不到介面或者關聯的pojo太多,造成死迴圈),一般情況下用的最多的就是root、includeproperties 和excludenullproperties引數。當然還有其他的方法,如給pojo的屬性加json註解。

[b]總結:[/b]

action中避免使用get開頭的action方法,去掉action中的介面的get方法。 為json型別的result配置includeproperties, excludeproperties等引數.

struts2返回json資料

struts2 json plugin 2.1.8.1.jar json lib 2.1.jar commons collections 3.2.jar commons beanutils 1.7.0.jar commons lang 2.3.jar commons logging 1.0.4.ja...

struts2 註解方式返回json

用了struts2 0配置後,如何返回json?首先action上,重新定義預設的 parentpackage,改為 parentpackage abstract struts abstract struts是自己在struts.xml裡定義的乙個package 然後在action上面定義resul...

struts2返回json和幾種方式

一 response物件返回 response.setcontenttype text html printwriter out response.getwriter out.println json out.flush return null 輸入結果 json 二 通過struts返回strea...