当前项目中,一开发人员在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官方文档的
连接吧
时间: 2024-10-25 04:48:07