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>*.act
</filter-mapping>
Act
Java代码
imp
imp
imp
imp
imp
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 Act
}
}
struts.xml文件:
Xml代码
<package name="jsonTest" extends="json-default">
<act
<result type="json">
<param name="root">responseJson</param>
</result>
</act
</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}
以上步骤做好后,我们就可以调用该act
Js代码
Ext.onReady(function(){ new Mic.GridPanel({ title : 'test', width : 500, height : 410, dataUrl : 'test.act ion', dwrStore : false, colMapping : ['id','name'], headers : [ { header: "Id", width: 60, dataIndex:'id'}, { header: "名称", width: 150, dataIndex:'name'} ] }).render(Ext.getBody()); });
调用说明: dataUrl : 'test.act
root参数:从返回结果中根据ognl表达式取出你需要输出的结果
我们只要输出person对象的name属性值,配置如下
1<result type="json">
2<param name="root">person.name</param>
3</result>
<result type="json"> <param name="root">person.name</param> </result>
5.2. excludeNullProperties 参数:表示是否去掉空值, 默认值是false,如果设置为true会自动将为空的值过滤,只输出不为空的值。
1<result type="json">
2 <param name="excludeNullProperties">true</param>
3</result>
4
<result type="json"> <param name="excludeNullProperties">true</param> </result>
5.3. ignoreHierarchy 参数:表示是否忽略等级,也就是继承关系,比如:TestAction继承于BaseAction,那么TestAction中返回的json字符串默认是不会包含父类BaseAction的属性值,ignoreHierarchy值默认为true,设置为false后会将父类和子类的属性一起返回。
1<result type="json">
2 <param name="ignoreHierarchy">false</param>
3</result>
<result type="json"> <param name="ignoreHierarchy">false</param> </result>
5.4. includeProperties 参数:输出结果中需要包含的属性值,这里正则表达式和属性名匹配,可以用“,”分割填充多个正则表达式。
如:输出person的所有属性
1<result type="json">
2 <param name="includeProperties">person.*, person\.name</param>
3</result>
<result type="json"> <param name="includeProperties">person.*, person\.name</param> </result>
5.5. excludeProperties 参数:输出结果需要剔除的属性值,也支持正则表达式匹配属性名,可以用“,”分割填充多个正则表达式,