日期:2014-05-16 浏览次数:20437 次
?
:JSON(JavaScript Object Notation) 是一种轻量级的数据交换格式。易于人阅读和编写,同时也易于机器解
析和生成。它基于JavaScript(Standard ECMA-262 3rd Edition - December 1999)的一个子集。 JSON采用完全独立于语言的文本格式,但是也使用了类似于C语言家族的习惯(包括C, C++, C#, Java, JavaScript, Perl, Python等)。这些特性使JSON成为理想的数据交换语言。
?
?
:struts2提供了一个struts2-json-plugin.jar 用于支持JSON的使用。当我们在struts2中使用JSON的时候
必须导入struts2-json-plugin.jar
并且需要一下几点:
?
1.<package name="struts2" extends="json-default">
? ? ? ?//必须是继承struts2-json-plugin.jar中struts-plugin.xml文件中的定义的json-default
? ? ? ?/* struts2-json-plugin.jar中struts-plugin.xml配置信息:
? ? ? ? ?<struts>
? ? ? ? ?<package name="json-default" extends="struts-default">
? ? ? ? ? ? ? ? ? ? ? ? ? ?<result-types>
? ? ? ? ? ? ? ? ? ? ? ? ? ?<result-type name="json" class="org.apache.struts2.json.JSONResult"/>
? ? ? ? ? ? ? ? ? ? ? ? ? ?</result-types>
? ? ? ? ? ? ? ? ? ? ? ? ? ?<interceptors>
? ? ? ? ? ? ? ? ? ? ? ? ? ?<interceptor name="json" class="org.apache.struts2.json.JSONInterceptor"/> ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ?</interceptors>
? ? ? ? ? ?</package>
?
? ? ? ? </struts>
?
? ? ? ?通过配置信息我们可以知道:
? ? ? ? ? 1.json-default其实是继承了struts-default的
? ? ? ? ? 2.定义了一个name为json的返回类型和一个name为json的拦截器 */
?
? ? ? ? ?2.<action name="*" class="*"><result name="success" type="json"/></action>//我们需要将result
? ? ? ? ?的?返回类型定义为json
?
?
<action name="*" class="*"> <result name="success" type="json"> <param name=""></param>//关于对JSON的一些定义 /*excludeProperties //代表排除Action中的哪些属性,排除多个属性时,使用逗号进行分隔(即不需要序列化的属性) 例:<param name="excludeProperties">age</param> 排除getAge()这个方法 为什么是排除这个方法下面详解 includeProperties //代表包含Action中的哪些属性,包含多个属性是,使用逗号进行分隔(即需要序列化的属性) 例:<param name="includeProperties">address</param>包含getAddress()这个方法 为什么是包含这个方法下面详解 excludeNullProperties //代表排除Action中属性值为空的字段 例:<param name="excludeNullProperties">true</param> 使用true/false 默认为false(即包含属性值为null的字段) root //代表从哪里开始序列化 例:<param name="root">person</param> person对应的可以是一个属性,也可以是一个对象,也可以是一个集合 //当在这里定义后,只会将person进行序列化,如果person是一个对象,则会将person对象中所有的getter方法都进行序列化 注意:如果相同属性同时定义了excludeProperties和includeProperties 那么excludeProperties的优先级要高,因此不对 该属性进行序列化 */ </result> </action>