网上流传的jsonplugin只适用于Struts2.0,2.1,如果版本2.3的Struts返回的结果会有问题。
经过查找发现此jar包已经成为struts2.3的一部分,以下实现返回给浏览器页面为json格式内容
引入Struts2插件
struts2-json-plugin-2.3.4.1.jar
及其他Struts 2.3.xxx相关包
Deom:
public class JSONExample3 {
private String json = "223";
private String field1 = "str";
private int[] ints = {10, 20};
private Map map = new HashMap();
private String customName = "custom";
private User user;
private List<User> lUser;
//'transient' fields are not serialized
private transient String field2;
//fields without getter method are not serialized
private String field3;
public String execute() {
map.put("John", "Galt");
user = new User();
user.setDescription("111");
user.setPassword("133");
user.setUsername("aaa");
lUser = new ArrayList<User>();
lUser.add(user);
json = "1112222";
return Action.SUCCESS;
}
// 属性set、get略
}
struts.xml配置:只输出特定几个属性
<package name="example" extends="json-default"> <action name="JSONExample" class="JSONExample3"> <result type="json"> <param name="includeProperties"> lUser, field1, json </param> </result> </action> </package>
访问URL(IHWS是项目名称):
http://127.0.0.1:8999/IHWS/JSONExample
输出结果为
{"field1":"str","json":"1112222","lUser":[]}
学习参考
- 官网Demo 经过试验有效
- 深入了解Struts2返回JSON数据的原理及具体应用范例 理论,原理学习
- 使用 Struts2 JSON plugin ( Struts2 + jQuery ) Study_Notes 注解的Demo学习