在 Strts2 中要使用 Ajax 获得 Json 数据我认为目前还是 struts2.docVIP

  • 6
  • 0
  • 约 33页
  • 2016-12-03 发布于贵州
  • 举报

在 Strts2 中要使用 Ajax 获得 Json 数据我认为目前还是 struts2.doc

在 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

文档评论(0)

1亿VIP精品文档

相关文档