您的位置:首页 > 编程语言 > Java开发

struts2 返回json数据(结合Extjs)

2012-09-06 11:17 555 查看
本例使用struts2版本 struts-2.1.8.1

 

首先导入必要的jar包:





 

[b]配置web.xml:[/b]





[xhtml]
view plaincopyprint?

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



[java]
view plaincopyprint?

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;  
    }  
}  

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;
}
}
[b][b] [/b][/b]
 

 

[b][b][b]最后配置struts.xml文件:[/b][/b][/b]

[b][/b]



[xhtml]
view plaincopyprint?

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

[b][b] [/b][/b]
 

[b][/b]

[b][/b]

[b][/b]

[b][/b]

[b][/b]

[b][/b]

[b][/b]

struts.xml配置说明:

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

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

 

[javascript]
view plaincopyprint?

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

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

如果设置了root,结果如下:

[xhtml]
view plaincopyprint?

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

[javascript]
view plaincopyprint?

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());  
    });  

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

 

[b]返回数据:[/b]

[b]

[/b]

 

[b][b]效果图:[/b][/b]

[b][b]

[/b][/b]

 

 

 

 

 

 
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息