MyEclpise85开发基于Struts2的Ajax.doc

  1. 1、本文档共8页,可阅读全部内容。
  2. 2、有哪些信誉好的足球投注网站(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
  3. 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载
  4. 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
查看更多
MyEclpise85开发基于Struts2的Ajax

MyEclipse8.5开发基于Struts2的Ajax JSON是一个轻量级的文本数据传输格式,Struts2也对JSON做了相应的封装,使得在JSON数据组装及使用Ajax方式读取非常之方便。下面就在MyEclipse8.5下开发基于Struts2框架的Ajax访问JSON格式的数据步骤作以全面的描述。 首先明确Struts2采用JSON插件将对象属性序列化为一个JSON格式的字符串,也就是要转换为JSON数据的对象必须是序列化的,因为JAVA所有基础数据类型对象都是序列化的,例如:Integer、String、Date、Double、List、Map、Set等,所以可以直接转换为JSON格式数据,而常用的数据存取工具Bean要被转换为JSON,就必须使这个Bean是一个Serializable接口的实例,这样才可以方便的转换为JSON格式数据。 创建工程 首先利用MyEclipse创建一个Web Project。然后添加Struts2组件支持,最后形成的工程结构如图: Struts2的核心类库已经包含了JSON核心数据处理的jar包(struts2-json-plugin-2.1.8.jar、json-lib-2.1.jar),并且封装了属性到JSON转换的方法,而且不需要额外的编程,所以不用再下载这些包,但是如果要在Action代码里边使用JSONObject、JSONArray这些对象,还要单独下载并引入这些jar包(commons-lang.jar、commons-beanutils.jar、commons-collections.jar、commons-logging.jar、ezmorph.jar、json-lib-2.2.2-jdk15.jar),这个不是本文讨论重点,所以如何使用不再赘述。 添加Ajax调用的Action Ajax调用的Action和Form调用的Action是一样的,并没有太大的区别,只是在返回数据的过滤方面多了一些配置,下面逐条说明。 struts.xml配置 Struts2的核心配置文件struts.xml是配置所有Action的地方,通常Form的Action的package标签的extends属性值是struts-default,但是如果这个Package里边包含以JSON方式提供数据的Action,则extends属性值是json-default。 第二个要配置的是Action的result标签,这个标签的type属性值也要设为json。 要使用JSON,以上两点是必须的配置,下面一些是附加的配置,可以进一步提高JSON的灵活性: param标签,这个标签是reslut的子标签,里边常用的属性有:includeProperties、excludeProperties等,顾名思义,includeProperties是指需要序列化到JSON的属性名称,excludeProperties是不序列化到JSON的属性名称,该属性值可以是完???的属性名,也可以是一个正则表达式,但是为了提高可读性,建议使用完整的属性名称。如果要过滤某个Bean对象的属性,则使用如下格式:user\.name,指的是过滤user对象下的name属性。 Bean编写 响应Ajax的Action和Form的Action是一样的,如果在这个Action里边包含Bean对象的属性时,还要使这个Bean的属性也要序列化到JSON输出,则这个Bean必须是一个Serializable接口的实例,并且要输出的属性必须有Bean的getter方法,否则转换到JSON后的这部分数据是一个空值{}。 在Bean代码中设置属性特性 前面说过可以在struts.xml的resultparam中设置哪些属性可以被JSON,哪些属性不能被JSON,也可以在程序中设置,即在getter方法前添加JSON的注释说明@JSON(serialize = false,deserialize=false),这个注释说明包含:serialize,deserialize,format等,serialize=true,说明该属性可以被JSON,如果为false,则不能被JSON,deserialize说明是否可以被反JSON,即是否可以从JSON转换为Bean的属性,format是针对Date型属性输入/出格式的。Bean代码中的JSON注释优先级高于struts.xml中inclusePorperties,也就是如果在Bean的java代码中注明某个属性不能JSON,即使struts.xml声明可以JSON,那么也不能输出JSON数据。但是为了配置灵活性,最好在struts.xml中配置过滤信息,不要在程序里边写死。 另外:如果要在Bean代码中使用J

您可能关注的文档

文档评论(0)

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

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

1亿VIP精品文档

相关文档