首页 > 代码库 > 记录struts2 json plugin 对字符串数组类型的处理

记录struts2 json plugin 对字符串数组类型的处理

    当前项目中,一开发人员在action中定义了一个字符串数组类型的属性,需要以json格式返回到页面(先不论这种设计是否最优),

结果在做页面调试时发现总是无法在ajax的success方法中获取到该属性。后台action调试发现该数组已经正确赋值,get

方法也没有问题,action相关代码如下:


private String[] traceList;

private String unitName;

。。。

public String queryTrace(){

    unitName = “testName”;
    traceList=tranManager.getTraceList(traceNO);
    return "queryTrace";
}
。。。

public String getUnitName() {
    return unitName;
}

public String[] getTraceList() {
    return traceList;
}

在struts配置文件中对应的action配置添加了如下配置:


<result name="queryTrace" type="json">
    <param name="includeProperties">traceList,unitName</param>
</result>

在ajax的成功回调方法获取到traceList对象总是空数组,查看struts2手册发现,


struts json plugin的result中声明的includeProperties,对字符串数组或者原始类型数组的声明方式,应该如下:


<result name="queryTrace" type="json">
    <param name="includeProperties">^traceList\[\d+\],unitName</param>
</result>

另外还需注意一点,如果同时使用了excludeProperties和includeProperties,发生冲突时,前者优先级高于后者。

给大家个struts官方文档的 连接吧







记录struts2 json plugin 对字符串数组类型的处理