- 6
- 0
- 约 33页
- 2016-12-03 发布于贵州
- 举报
在 Strts2 中要使用 Ajax 获得 Json 数据我认为目前还是 struts2
在 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 字符串:
01
02
03
04
05
06
07
08
09
10 {
???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 中:
1
2
3
4
5
6
7
8
9 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(拦截器), 被任何 一个正则表达式匹配的属性将会在序列化过程时忽略掉:
01
02
03
04
05
06
07
08
09
10
11
12
13
1
您可能关注的文档
最近下载
- (2026年)实施指南《GBT13265.1-1997纤维光学隔离器第1部分总规范》.pptx VIP
- 2026-2030中国沉香木行业市场深度调研及发展趋势与投资前景研究报告.docx
- 东北证券-博源化工-000683-稀缺天然碱领军企业阿碱项目稳步扩产.pdf VIP
- JB_T 8531-2013阀门手动装置 技术条件.pdf
- 武术套路单项比赛所需物品明细单.docx VIP
- 部编版小学语文教师:统编版语文1-6年级语文要素梳理.pdf VIP
- 2026年江苏城市职业学院单招职业技能考试必刷测试卷附答案.docx VIP
- 船上见习记录簿(样式).pdf
- (2026春新版)三年级下册道德与法治全册教案.docx
- (2025年)广东省公务员招录面试真题及答案.docx
原创力文档

文档评论(0)