struts2 ext json数据

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
ion</url-pattern>  
    </filter-mapping>

 

 

 
Act
ion类:
Java代码
imp
ort java.util.ArrayList;   
imp
ort java.util.HashMap;   
imp
ort java.util.List;   
imp
ort java.util.Map;   
  
imp
ort 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 Act
ion.SUCCESS;   
    }   
}  
struts.xml文件:

 

 


Xml代码
<package name="jsonTest" extends="json-default">  
        <act
ion name="test" class="bll.Test" method="getList">               
            <result type="json">  
                <param name="root">responseJson</param>  
            </result>  
        </act
ion>  
    </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属性。

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 参数:输出结果需要剔除的属性值,也支持正则表达式匹配属性名,可以用“,”分割填充多个正则表达式,


评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值