Struts2Jsonplugin详解分析和总结.docxVIP

  1. 1、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。。
  2. 2、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载
  3. 3、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
  4. 4、该文档为VIP文档,如果想要下载,成为VIP会员后,下载免费。
  5. 5、成为VIP后,下载本文档将扣除1次下载权益。下载后,不支持退款、换文档。如有疑问请联系我们
  6. 6、成为VIP后,您将拥有八大权益,权益包括:VIP文档下载权益、阅读免打扰、文档格式转换、高级专利检索、专属身份标志、高级客服、多端互通、版权登记。
  7. 7、VIP文档为合作方或网友上传,每下载1次, 网站将根据用户上传文档的质量评分、类型等,对文档贡献者给予高额补贴、流量扶持。如果你也想贡献VIP文档。上传文档
查看更多
在 Struts 2 中使用 JSON Ajax 支持 JSON 插件提供了一种名为 json 的 ResultType,一旦为某个 Action 指定了一个类型为 json 的 Result , 则该 Result 无需映射到任何视图资源。将下载到的jsonplugin-0.7.jar 文件复制到 Web 应用的 WEB-INF 路径下,即可完成 JSON 插 件的安装。 JSON 插件提供了一种名为 json 的 ResultType,一旦为某个 Action 指定了一个类型为 json 的 Result,则该Result 无需映射到任何视图资源。因为JSON 插件会负责将Action里的状态信息序列化成 JSON 格式的数据,并将该数据返回给客户端页面的JavaScript。 简单地说,JSON 插件允许我们在 JavaScript 中异步调用 Action,而且 Action 不再需要使用视图资源来显示该 Action 里的状态信息,而是由 JSON 插件负责将 Action 里的状态信息返回给调用页面——通过这种方式,就可以完成 Ajax 交互。 Struts2 提供了一种可插拔方式来管理插件,安装Struts2 的 JSON 插件与安装普通插件并没有太大的区别,一样只需要将Struts2 插件的 JAR 文件复制到 Web 应用的WEB-INF/lib 路径下即可。 安装 JSON 插件按如下步骤进行: 登陆 /p/jsonplugin/downloads/list 站点,下载Struts2 的 JSON 插件的最新版本,当前最新版本是0.7,我们可以下载该版本的 JSON 插件。 将下载到的 jsonplugin-0.7.jar 文件复制到 Web 应用的 WEB-INF 路径下,即可完成 JSON 插件的安装。 实现 Actio 逻辑 假设 wo,en 输入页面中包含了三个表单域,这三个表单域对于三个请求参数,因此应该使用 Action 来封装这三个请求参数。三个表单域的name 分别为 field1、field2 和field3。 处理该请求的 Action 类代码如下: public class JSONExample public class JSONExample { //封装请求参数的三个属性private String field1; private transient String field2; private String field3; //封装处理结果的属性 private int[] ints = {10, 20}; private Map map = new HashMap(); private String customName = custom; //三个请求参数对应的 setter 和 getter 方法 public String getField1() { return field1; } public void setField1(String field1) { this.field1 = field1; } //此处省略了 field1 和 field2 两个字段的 setter 和 getter 方法 ... //封装处理结果的属性的 setter 和 getter 方法public int[] getInts() { return ints; } public void setInts(int[] ints) { s = ints; } public Map getMap() { return map; } public void setMap(Map map) { this.map = map; } //使用注释语法来改变该属性序列化后的属性名@JSON(name=newName) public String getCustomName() { return this.customName; } public String execute() { map.put(name, yeeku); return Action.SUCCESS; } } 在上面代码中,使用了 JSON 注释,注释时指定了 name 域,name 域指定 Action 属性 被序列化成 JSON 对象的属性名。除此之外,JSON 注释还支持如下几个域: serialize: 设 置 是 否 序 列 化 该 属 性 deserialize:设置是否反序列化该属性。 format:设置用于格式化输出、解析日期表单域的格式。例如 yyyy-MM-ddTHH:mm:ss。 配置该 Action 与配置普通 Action 存在小小的区别,应该为该 Action 配置类型为 json

文档评论(0)

hao187 + 关注
官方认证
文档贡献者

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

认证主体武汉豪锦宏商务信息咨询服务有限公司
IP属地上海
统一社会信用代码/组织机构代码
91420100MA4F3KHG8Q

1亿VIP精品文档

相关文档