Struts2-Json-Plugin的使用精要.doc

  1. 1、本文档共11页,可阅读全部内容。
  2. 2、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
  3. 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载
  4. 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

文档评论(0)

586334000 + 关注
实名认证
内容提供者

该用户很懒,什么也没介绍

1亿VIP精品文档

相关文档