- 1、本文档共11页,可阅读全部内容。
- 2、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
- 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载。
- 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
查看更多
Struts2-Json-Plugin的使用精要
Struts2-Json-Plugin 的使用
在 Struts2 中要使用 Ajax 获得 Json 数据我认为目前还是 struts2-json-plugin 了。当然你你可以用手工用像 XStream、Google Gson、Jackson 这样的工具手工把 Java 对象转换成 Json 字符串再写往 Response 去,要写的代码自然多不了,还得留心字符集与 content type。而 struts2-json-plugin 毫无疑问是与 Struts2 最亲近了,只需你配置一些属性就能得到你想的结果。
本想分几篇逐步介绍如何使用 struts2-json-plugin 的,然而就在现在发现官方的 struts2-json-plugin 指南已经很详细了,所以干脆翻译一下 //docs/json-plugin.html,同时自己加深对它的理解。
JSON 插件提供了一个 json 结果类型来把 action 序列化成 JSON. 这一序列化的过程是递归的, 意即整个对象图,从 action 类开始 (未包括基类) 将会被序列化 (可以用 root 属性来指定自己的根对象). 如果使用了 json 拦截器, action 将可通过请求中的 JSON 内容组装出来, 该拦截器遵循以下几条规则:
content-type 必须为 application/json
JSON 内容必须是格式良好的, 参考 中的语法.
Action 里必须有欲获取值的属性的相应 public 的 setter 方法.
所支持的类型有: 原始类型 (int,long...String), Date, List, Map, 原始类型数组, 其他的类 (将会支持更多), 和其他类型的数组.
JSON 中的任何将要被填入到 list 或 map 中的对象会是 Map 类型(属性映射到值), 任何整数都是 Long 类型, 任何小数会是 Double 类型, 任何数组会是 List 类型.
给定下面的 JSON 字符串:
{
doubleValue: 10.10,
nestedBean: {
name: Mr Bean
},
list: [A, 10, 20.20, {
firstName: El Zorro
}],
array: [10, 20]
}
action 中必须有一个 setDoubleValue 方法, 参数为 float 或者 double(拦截器将会把值转换为相应的类型). 还必须有一个 setNestedBean 方法,它的参数类型可以为任何类类型, 其中含有参数为 String 的 setName 方法. 还必须有一个参数为 List 的 setList 方法, 这个 List 中将会包含: A (String), 10 (Long), 20.20 (Double), Map (firstName - El Zorro). setArray 方法可以是 List, 或任何数字类型数组作参数的.
序列化你的对象成 javascript 的 JSON, 参考 json2
安装
本插件可通过把插件 jar 包到你的应用的 /WEB-INF/lib 目录来完成安装. 没有别的文件需要拷贝或被创建.
使用 maven 的话, 加入下列到你的 pom 中:
dependencies
...
dependency
groupIdorg.apache.struts/groupId
artifactIdstruts2-json-plugin/artifactId
versionSTRUTS_VERSION/version
/dependency
...
/dependencies
定制化序列化和反序列化
使用 JSON 注解来达到定制序列化和反序列化过程. 可用的 JSON 注解如下:
名称 描述 默认值 序列化 反序列化
name 定制字段名 empty yes no
serialize 标识为可被序列化 true yes no
deserialize 标识为可被反序列化 true no yes
format 用于格式化或解析 Date 字段的格式 yyyy-MM-ddTHH:mm:ss yes yes
排除属性
逗号分隔的正则表达式列表可传递给 JSON Result 和 Interceptor(拦截器), 被任何 一个正则表达式匹配的属性将会在序列化过程时忽略掉:
!-- Result fragment --
result type=json
param name=excludeProperties
您可能关注的文档
- SQLServer2008数据库设计第3章精要.pptx
- SRG3200l2tp配置指导精要.docx
- srvcc切换深入分析及实战解决方案精要.docx
- SR3说明书精要.doc
- 保健食品蛋白类2分析.ppt
- 依法防治职业病切实关爱劳动者22分析.doc
- 保健食品培训课件分析.ppt
- SQ-雷达系统(第一章)精要.pptx
- 保卫处保安队伍建设分析.doc
- 保安、保洁培训分析.ppt
- 2025年互动性测试题目及答案.doc
- 分析dsquared商店windowsshop窗户.pdf
- 文稿og起始数据志.pdf
- 高新技术成果转化项目初审.pdf
- secured transaction outline有担保交易大纲.pdf
- 3179 ferrous gluconate tablets3178-亚铁葡萄糖片剂.pdf
- 220kV草水Ⅰ、Ⅱ回保护装置更换(到期)专项工作方案.docx
- 500kV变电站220kV变电站综合自动化改造、220kV及以上线路、220kV主变保护更换施工方案.doc
- CAD 进阶:从基础到精通的技巧汇总,效率翻倍!.docx
- 医用直线加速器超厚墙、顶板施工质量控制措施.docx
最近下载
- 企业采购管理蔬菜采购验收标准DOC56页.pdf VIP
- 2025年云南省中考物理试题卷(含答案解析).docx
- 体温测量软件GBT 25000.51-2016自测报告.docx VIP
- WS∕T 225-2024 临床化学检验血液标本的采集与处理.pdf
- 信息系统的使用与维护管理办法.doc VIP
- 环境影响评价报告公示大理州永平县汽车客运站环境影响评价报告表环评报告.doc VIP
- 2022年1月广东自考《07114现代物流学》试题和答案 .pdf VIP
- Unit 1 Happy Holiday(大单元教学设计)英语人教版2025八年级上册.pdf
- 2025年军队文职人员公开招录《管理学》真题库(含答案).pdf VIP
- 网络数据安全检查项及检查方法.docx VIP
文档评论(0)