您的位置:首页 > 编程语言 > Java开发

关于使用struts2-json-plugin 插件,Json返回List对象数据为空解决方案

2015-05-05 15:50 731 查看
今天的项目的时候需要服务器通过返回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.user.GetAllVarietiesAction">
<result type="json" name="success">
<!-- 这里指定将序列化list中的那些属性 -->
<param name="includeProperties">result.*</param>
</result>

</action>

最终浏览器返回结果为

{"result":["puer_tea","green_tea"]}
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签:  struts 2