1.导入jsonplugin包
Struts2.1.6:导入jsonplugin-0.34.jar包(下载包)和commons-logging-1.0.4.jar(Struts2 lib下有)
Struts2.1.8导入struts2-json-plugin-2.1.8.1.jar(Struts2 lib下有)
Struts2.2.1导入struts2-json-plugin-2.2.1.jar(Struts2 lib下有)
2.struts.xml中package 中extends="json-default"
<package name="json" namespace="/json" extends="json-default">
3.result 中type="json"
<!-- 封装所有的get开头的方法 -->
<result type="json" name="user">
</result>
<!-- 只包含user.id属性 -->
<result type="json" name="user">
<param name="includeProperties">
user\.id
</param>
</result>
<!-- 返回user的JSON List列表,其中userInfosList是action中的一个List类型的属性,userInfosList \[\d+\]\. userName表示,userInfosList中存储的对象0..end的userName属性(list中存储的对象必须有userName属性)
-->
<result name="success" type="json">
<param name="includeProperties">
userInfosList\[\d+\]\.userName,userInfosList\[\d+\]\.password
</param>
</result>
<!-- 不包含user属性 -->
<result type="json" name="list">
<param name="excludeProperties">
user
</param>
</result>
<!-- 根对象只包含user -->
<result type="json">
<param name="root">
user
</param>
</result>
<!-- "root"对象中父类的field(属性)不会(会?) 默认存放到 JSON数据中,如果不想这样做,需要在配置时指定 ignoreHierarchy 为 false: -->
<result type="json">
<param name="ignoreHierarchy">false</param>
</result>
4.避免使用get开头的action方法
在属性get方法上面加
@JSON(name="newName")json中的名称
@JSON(serialize=false) 该属性不被加入json
@JSON(format="yyyy-MM-dd") 格式化日期
5.在action中赋值,返回对应的result字符串
说明:
为什么要用includeProperties或excludeProperties 参数:主要是为了过滤掉接口,pojo的set、list、其它对象等不需要的数据防止循环取其它关联对象或找不到接口。如果不配置,默认是处理action中的所有属性,如果action中有接口注入,json拦截器可能找不到接口而返回不了结果,还有如果action中有一个对象,这个对象与好多对象都有关联,json拦截器会将相关联的所有对象的属性全部转换成json格式,如果其它对象有list、set,其返回结果相当庞大,有可能是死循环而无法返回 。如果不用<param name="includeProperties">或其他方式进行json数据过滤,通过debug你会发现前台返回的json字符串,是把action中的所有属性全部转化成json字符串返回给客户端(包括service接口、pojo所有属性及有关联的pojo。有时候根本返回不了结果,也不报错,后台执行了,但前台执行不到callback function,这主要是因为找不到接口或者关联的pojo太多,造成死循环),一般情况下用的最多的就是root、includeProperties 和excludeNullProperties参数。当然还有其他的方法,如给pojo的属性加json注解。
总结:
action中避免使用get开头的action方法,去掉action中的接口的get方法。 为json类型的result配置includeProperties, excludeProperties等参数.
分享到:
相关推荐
但是,在开发工作中,对功能的升级是基于既定架构是很常见的情况。本人碰到需要用开发基于Struts2的HTTP+JSON返回... Struts2返回JSON有两种方式:1.使用Servlet的输出流写入JSON字符串;2.使用Struts2对JSON的扩展。
Struts2返回JSON对象. 通过Struts2框架返回json对象,更好传递数据
Struts2 返回json对象,用一个具体的实例,教会你用struts2 + ajax开发。
Struts2返回JSON对象.docxStruts2返回JSON对象.docx
Struts2返回JSON对象。将jsonplugin-0.30.jar放到工程的lib下面,然后struts2在struts.xml的配置文件中可以指定返回的结果集的类型为:json,把返回的结果封装为json字符串JSON插件是Struts2的Ajax插件,通过利用JSON...
Struts2返回JSON对象[参考].pdf
struts2使用json返回对象和列表(案例)
Struts2+JSON_实现AJAX_返回对象和列表
jsp通过Ajax无刷新获取Action返回的模拟数据,然后通过struts2转化成json数据返回页面....这里面Map,List,对象等等,一些常用的操作都有。主要的代码在Action和 json.js里面。适合新手入门
Struts2+JSON 实现AJAX 返回对象和列表
struts2使用json返回对象和列表(案例)参考.pdf
以下为大家介绍,关于struts返回对象json格式数据的方法,希望对有需要的朋友有所帮助。
struts2使用json返回对象和列表(案例)[整理].pdf
主要讲解Struts2返回JSON对象的两种方式,讲的比较详细,希望能给大家做一个参考。
通过jQuery获取表单数据,封装到JSON对象,再把JSON对象转为字符串传到Action,接到数据后,再把JSON字符串变为JSON对象,通过JSON的键,取出数据,通过调用数据库返回数据封装在JSON,打印出数据,然后在客户端接收...
使用JQuery传递数据到struts action ,并返回JSON对象数据,在JQuery回调函数解析数据的,Ajax异步处理的小测试
struts2通过action返回json对象其实很简单的,首先我们需要引入jar包,然后在写一个简单的action就好了,接下来通过本文给大家介绍struts2通过action返回json对象的方法,感兴趣的朋友一起看看吧
这是struts2返回json并在页面展示的练习项目 对初学者来说有用 有4个小项目分别练习struts2返回单个字符、对象、数组、map
struts2中action实现ModelDriven后无法返回json的解决方法,需要的朋友可以参考一下