struts2 返回json數據

 

首先導入必要的jar包:


 

配置web.xml:

Xml代碼 複製代碼 收藏代碼
  1. <filter>  
  2.         <filter-name>struts2</filter-name>  
  3.         <filter-class>org.apache.struts2.dispatcher.ng.filter.StrutsPrepareAndExecuteFilter</filter-class>  
  4.     </filter>  
  5.     <filter-mapping>  
  6.         <filter-name>struts2</filter-name>  
  7.         <url-pattern>*.action</url-pattern>  
  8.     </filter-mapping>  

 
 接着書寫Action類:

Java代碼 複製代碼 收藏代碼
  1. import java.util.ArrayList;   
  2. import java.util.HashMap;   
  3. import java.util.List;   
  4. import java.util.Map;   
  5.   
  6. import com.opensymphony.xwork2.Action;   
  7.   
  8.   
  9. public class Test {   
  10.     public Map responseJson;   
  11.     public Map getResponseJson() {   
  12.         return responseJson;   
  13.     }   
  14.     public void setResponseJson(Map responseJson) {   
  15.         this.responseJson = responseJson;   
  16.     }   
  17.        
  18.     public String getList(){   
  19.         Map<String, Object> map = new HashMap<String, Object>();   
  20.         List<Map<String, Object>> list = new ArrayList<Map<String, Object>>();   
  21.         for(int i=0;i<3;i++){   
  22.             Map<String, Object> m = new HashMap<String, Object>();   
  23.             m.put("id", i);   
  24.             m.put("name""Mic"+i);   
  25.             list.add(m);   
  26.         }   
  27.         map.put("rows", list);   
  28.         map.put("totalCont"3);   
  29.         this.setResponseJson(map);   
  30.         return Action.SUCCESS;   
  31.     }   
  32. }  

 

最後配置struts.xml文件:

 

 

Xml代碼 複製代碼 收藏代碼
  1. <package name="jsonTest" extends="json-default">  
  2.         <action name="test" class="bll.Test" method="getList">               
  3.             <result type="json">  
  4.                 <param name="root">responseJson</param>  
  5.             </result>  
  6.         </action>  
  7.     </package>  

struts.xml配置說明:

1,<result type="json"> 這句說明返回類型爲json,所以extends設置爲"json-default"。

2,<param name="root">responseJson</param> responseJson對應返回數據的根,如果省略這行返回的結果如下:

 

Js代碼 複製代碼 收藏代碼
  1. {"list":"success","responseJson":{"rows":[{"name":"Mic0","id":0},{"name":"Mic1","id":1},{"name":"Mic2","id":2}],"totalCont":3}}  

 如果設置了root,結果如下:

  1. {"rows":[{"name":"Mic0","id":0},{"name":"Mic1","id":1},{"name":"Mic2","id":2}],"totalCont":3}  
 

以上步驟做好後,我們就可以調用該action了:

  1. Ext.onReady(function(){  
  2.         new Mic.GridPanel({  
  3.             title : 'test',  
  4.             width : 500,  
  5.             height : 410,  
  6.             dataUrl : 'test.action',  
  7.             dwrStore : false,  
  8.             colMapping : ['id','name'],  
  9.             headers : [  
  10.                 { header: "Id", width: 60, dataIndex:'id'},  
  11.                 { header: "名稱", width: 150, dataIndex:'name'}  
  12.             ]  
  13.         }).render(Ext.getBody());  
  14.     });  

 調用說明: dataUrl : 'test.action'  test就是action中的name屬性。

 

返回數據:


 

效果圖:


發佈了17 篇原創文章 · 獲贊 0 · 訪問量 4萬+
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章