一、基本原理
使用拦截器机制,对Action的成员变量做持久化处理。
二、包的设置
<package.../>元素的属性extends为“json-default”,“json-default”的result type可以为“json”。
json-default 设置后,result就会被Struts2的拦截器拦截。并按json序列化后返回。
视图为Action的字段,且字段按JSON格式序列化输出给客户端全部字段输出
三、指定序列化字段
解决方案:
在struts2.xml配置文件中里配置
<param name="includeProperties"></param> 这个属性表示要包含进JSON数据中的数据。
<param name="excludeProperties"></param> 这个属性表示不要包含进JSON数据中的数据。
注意:
Jar包是jsonplugin-0.25的,只支持excludeProperties,不支持includeProperties。
从0.28版本才开始支持includeProperties。
讨论:
只要有get方法,都会包含到json对象的属性,比如此useraction转为json如下:
{"allDatas":null,"analysisList":null,"maps":{6388:170},"message":null,"model":{"attachName":null,"attachPath":null,"auditStatus":null,"briefTitle":"null"}"
有时候我们只想指定的字段转为json,这时需要在xml里配置<param name="includeProperties">。
例:xml配置
<package name="example" extends="json-default"> <action name="JSONExample" class="com.test.UserAction"> <result type="json"> <param name="includeProperties"> name,maps.* </param> </result> </action> </package>
例如:配置返回refreshDatas集合中的字段
<action name="vote" class="com.test.VoteAction" method="{1}"> <result name="error" type="json"> <param name="includeProperties">message</param> </result> <result name="success" type="json"> <param name="includeProperties">message,refreshDatas\[\d+\]\.newsId,refreshDatas\[\d+\]\.numberOfVotes</param> </result> </action>
四、指定非序列化字段
为了使Action类的某些对象不序列化,则只需要字段不提供get方法即可。
或使用@JSON(serialize=false) ,或使用@Transient注解该字段。
@JSON和json类型的result都还有很多可选项,无非就是串行化谁,不串行化谁,返回数据的MIME类型,读者可以自行参考相关文档。
参考文档:
http://bosslife.blog.163.com/blog/static/114917017201061911130625/
http://bangsen.iteye.com/blog/969353
http://topic.csdn.net/u/20091214/14/c57aa29d-2588-473c-8e17-032e35a8e696.html
http://wenku.baidu.com/view/26d9a9f67c1cfad6195fa734.html
http://struts.apache.org/2.2.3/docs/json-plugin.html
相关推荐
struts和ajax应用例子 struts和ajax应用例子 struts和ajax应用例子 struts和ajax应用例子
基于Struts 2 Ajax实现的Login应用
struts2应用ajax的小例子
简单的struts2中应用jquery ajax小例子,布置一下就能运行,
针对传统的企业级Web应用开发中客户端与服务器端之间存在数据传输效率和响应速度低、用户体验差的问题,提出了一种基于Struts2+jQuery Ajax的企业级Web应用开发方案,并将该方案运用到中小型煤炭企业客户关系管理系统...
8.1.1 页面上:如何使用自定义结果组件构建Struts 2 Ajax应用程序 171 8.1.2 实现JSON结果类型 173 8.2 常用的结果类型 180 8.2.1 RequestDispatcher,也叫做dispatcher 180 8.2.2 ServletRedirectResult,也叫做...
ajax在struts中应用(一)ajax在struts中应用(一)ajax在struts中应用(一)ajax在struts中应用(一)ajax在struts中应用(一)
文档包括以下内容(全部来源自网络): -- Struts2概述; -- Freemarker概述; -- Webwork源码分析; -- Struts2与Spring集成; -- Struts2 Ajax应用。
struts2和ajax在java开发中的应用总结
大型门户网站是这样炼成的,本书详细介绍了以JSP 2、Struts 2、Spring 2.5、Hibernate 3.2、AJAX等主流JavaEE技术进行优化组合开发高性能大型门户网站的实践经验。针对读者的不同学习阶段,共分技术篇、实践篇与部署...
Ajax DWR struts 应用案例 Ajax DWR struts 应用案例 Ajax DWR struts 应用案例
struts2~json~gson~jquery~ajax简单应用
这是前台用jsp页面,并应用jquery、easyui、ajax、struts2技术,以json数据格式传输的一个登录例子
Struts+Jquery+Ajax+Json应用实例,前端引入jquery,后台使用struts框架。前端js调用后台action,并将后台返回的json数据进行解析,设置web页面
讲述基于MVC模式的Struts框架中Ajax研究与应用..........
《搞定j2ee核心技术与企业应用:ajax,jsp,struts 2,spring,hibernate》是笔者在多年项目开发过程中的经验总结,它通过丰富的实例由浅入深、循序渐进地介绍了目前采用java进行web开发的各种框架的使用方法,从而...
Struts2Ajax刷新,验证框架,国际化详解。
介绍struts2中的AJAX插件json的应用。
Hibernate_Struts和AJAX在Web开发中的综合应用.pdf...........
在Struts应用中使用Ajax