struts2返回json資料

2021-08-31 19:29:46 字數 2362 閱讀 2134

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.jar

ezmorph-1.0.3.jar

這7個包是返回json形式的資料必須的。因為json大量引用了apache commons的包,所以要加入4個,commons包,除了commons的包外,還需要引入乙個 ezmorph的包。最後加入struts2必須的6個包:

struts2-core-2.1.8.1.jar

xwork-core-2.1.6.jar

ognl-2.7.3.jar

freemarker-2.3.15.jar

commons-fileupload-1.2.1.jar

commons-io-1.3.2.jar

2、後台:

1) userinfo實體類**

public class userinfo implements serializable

2) action類

public class testaction extends actionsupport

/*返回userinfo物件*/

public string returnuser()

/*返回list物件*/

public string returnlist()

}3) struts.xml(必須繼承json-default、json-default繼承自struts-default)

validate

userinfo\.userid,userinfo\.username,userinfo\.password

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

3、前台:

1) 頁面引入jquery-1.4.2.js

2) **如下:

4、只要繼承extends="json-default",result type設定成json之後,容器會把action的屬性自動封裝到乙個json物件中(json***來做),然後呼叫ajax的callback方法. 返回json資料

5、includeproperties 引數:輸出結果中需要包含的屬性值,這裡正規表示式和屬性名匹配,可以用「,」分割填充多個正規表示式。

如:輸出userinfo的所有屬性及userinfo的username屬性

userinfo.*,

userinfo \. username

6、excludeproperties 引數:輸出結果需要剔除的屬性值,也支援正規表示式匹配屬性名,可以用「,」分割填充多個正規表示式,類同includeproperties

7、輸出乙個json list列表

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

其中userinfoslist是action中的乙個list型別的屬性,userinfoslist \[\d+\]\. username表示,userinfoslist中儲存的物件0..end的username屬性(list中儲存的物件必須有username屬性)。

8、為什麼要用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註解。

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

Struts2寫介面返回json資料

公司老專案struts,寫了一些介面的方法,記錄下來。第一種 struts.xml配置 ajaxresult action package com.mangocity.ship.web.action import com.alibaba.fastjson.jsonobject import com....

struts2 註解方式返回json

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

Struts2返回JSON物件總結

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...