关于使用struts2-json-plugin 插件,Json返回List对象数据为空解决方案
今天的项目的时候需要服务器通过返回Json对象传递数据,Json中的数据是一个List对象,List中是一堆自定义Message对象。但是在返回的时候接收到的却是空数据.
浏览器返回结果
{"result":[]}
返回的List中肯定是有数据的,后台测试list的长度大于1。
struts2.xml中的配置为(这里的result为action中指定的list返回结果)
<!-- 获取所有种类 --> <action name="getAllVarietiesAction" class="com.hcj.action.database.GetAllVarietiesAction"> <result type="json" name="success"> <!-- 这里指定将序列化list中的那些属性 --> <param name="includeProperties"><span style="color:#ff0000;">result</span></param> </result> </action>
action中为
package com.hcj.action.database; import java.util.List; import com.hcj.model.User; import com.hcj.service.UserService; import com.opensymphony.xwork2.ActionContext; import com.opensymphony.xwork2.ActionSupport; //获取所有 public class GetAllVarietiesAction extends ActionSupport { private UserService userService; private List<String> result; public List<String> getResult() { return result; } public void setResult(List<String> result) { this.result = result; } public UserService getUserService() { return userService; } public void setUserService(UserService userService) { this.userService = userService; } @Override public String execute() throws Exception { result = userService.getAllVarieties(); System.out.println("查询结果为" + result.get(1)); return SUCCESS; } }
后查询了资料后,只要将strut2.xml做如下修改就可得到正确结果
<!-- 获取所有种类 --> <action name="getAllVarietiesAction" class="com.hcj.action.database.GetAllVarietiesAction"> <result type="json" name="success"> <span style="white-space:pre"> </span> <!-- 这里指定将序列化list中的那些属性 --> <span style="white-space:pre"> </span> <param name="includeProperties"><span style="color:#ff0000;">result.*</span></param> <span style="white-space:pre"> </span></result> </action>
最终浏览器返回结果为
{"result":["puer_tea","green_tea"]}
郑重声明:本站内容如果来自互联网及其他传播媒体,其版权均属原媒体及文章作者所有。转载目的在于传递更多信息及用于网络分享,并不代表本站赞同其观点和对其真实性负责,也不构成任何其他建议。