struts2 ext json数据

来源:互联网 发布:昆山数控编程培训班 编辑:程序博客网 时间:2024/04/28 20:25

web.xml

<filter>  
        <filter-name>struts2</filter-name>  
        <filter-class>org.apache.struts2.dispatcher.ng.filter.StrutsPrepareAndExecuteFilter</filter-class>  
    </filter>  
    <filter-mapping>  
        <filter-name>struts2</filter-name>  
        <url-pattern>*.action</url-pattern>  
    </filter-mapping>

 

 

 
Action类:
Java代码
import java.util.ArrayList;   
import java.util.HashMap;   
import java.util.List;   
import java.util.Map;   
  
import com.opensymphony.xwork2.Action;   
  
  
public class Test {   
    public Map responseJson;   
    public Map getResponseJson() {   
        return responseJson;   
    }   
    public void setResponseJson(Map responseJson) {   
        this.responseJson = responseJson;   
    }   
       
    public String getList(){   
        Map<String, Object> map = new HashMap<String, Object>();   
        List<Map<String, Object>> list = new ArrayList<Map<String, Object>>();   
        for(int i=0;i<3;i++){   
            Map<String, Object> m = new HashMap<String, Object>();   
            m.put("id", i);   
            m.put("name", "Mic"+i);   
            list.add(m);   
        }   
        map.put("rows", list);   
        map.put("totalCont", 3);   
        this.setResponseJson(map);   
        return Action.SUCCESS;   
    }   
}  
struts.xml文件:

 

 


Xml代码
<package name="jsonTest" extends="json-default">  
        <action name="test" class="bll.Test" method="getList">               
            <result type="json">  
                <param name="root">responseJson</param>  
            </result>  
        </action>  
    </package>  

 

struts.xml配置说明:

1,<result type="json"> 这句说明返回类型为json,所以extends设置为"json-default"。

2,<param name="root">responseJson</param> responseJson对应返回数据的根,如果省略这行返回的结果如下:


Js代码

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

 

 如果设置了root,结果如下
 <result type="json">  
                <param name="root">responseJson</param>  
            </result>  


Js代码

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

以上步骤做好后,我们就可以调用该action了:

 


Js代码

 

Ext.onReady(function(){  new Mic.GridPanel({title : 'test',width : 500,height : 410,        dataUrl : 'test.action',        dwrStore : false,        colMapping : ['id','name'],headers : [{ header: "Id", width: 60, dataIndex:'id'},        { header: "名称", width: 150, dataIndex:'name'}]}).render(Ext.getBody());  });

 调用说明: dataUrl : 'test.action'  test就是action中的name属性。

原创粉丝点击