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属性。

 

返回数据:


 

效果图:


  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值