`
zhouchaofei2010
  • 浏览: 1106533 次
  • 性别: Icon_minigender_1
  • 来自: 上海
社区版块
存档分类
最新评论

jsonplugin的使用

 
阅读更多
为了方便ajax调用传输数据,在struts2中加入的json插件用来做对象的序列化和反序列化,json插件的下载地址

http://code.google.com/p/jsonplugin/

1. 下载json插件包,将jar包拷贝到WEB-INF/lib目录
注:struts2的json插件有两个版本0.32和0.34,我用的struts2的版本是2.0.11,在加入0.34版本json插件时启动发生异常,提示找不到相关方法,后来就换成了低版本的0.32一切OK,仔细查看文档后发现struts2的2.0.*版本的对应插件的0.32版本,struts2.1.*版本对应0.34版本

2.json插件执行原理时序图

3.将struts.xml里面的
Java代码 复制代码 收藏代码
  1. <package name="default" extends="struts-default">  
<package name="default" extends="struts-default">

改为
Java代码 复制代码 收藏代码
  1. <package name="default" extends="json-default">  
<package name="default" extends="json-default">


4.Action中的配置
Java代码 复制代码 收藏代码
  1. <action name="testAction" class="com.json.action.TestAction" method="testMethod">     
  2.     <interceptor-ref name="json" /><!--处理以JSON文本提交的请求-->     
  3.     <result type="json" /> <!--将action的bean属性以json字符串返回浏览器-->     
  4. </action>   
 <action name="testAction" class="com.json.action.TestAction" method="testMethod">  
     <interceptor-ref name="json" /><!--处理以JSON文本提交的请求-->  
     <result type="json" /> <!--将action的bean属性以json字符串返回浏览器-->  
 </action> 

注:根据需要选择interceptor和result配置
5. 你会发现前台返回的json字符串,是把action中的所有属性全部转化为json字符串返回给浏览器了,但是我有时候需要根据实际情况返回部分结果,如何对json的结果进行定制输出呢?result提供了一些参数替你解决这个问题

  5.1. root参数:从返回结果中根据ognl表达式取出你需要输出的结果
         如:action类
Java代码 复制代码 收藏代码
  1. public class BaseAction extends ActionSupport implements  {      
  2.     private Person person = null;      
  3.                 ...      
  4. }   
 public class BaseAction extends ActionSupport implements  {   
     private Person person = null;   
                 ...   
 } 

bean类
public class Person {  
     private String name;  
     private int age;  
     ...  
}
我们只要输出person对象的name属性值,配置如下
<result type="json"> 
     <param name="root">person.name</param> 
</result>
5.2. excludeNullProperties 参数:表示是否去掉空值, 默认值是false,如果设置为true会自动将为空的值过滤,只输出不为空的值。
Java代码 复制代码 收藏代码
  1. <result type="json">     
  2.     <param name="excludeNullProperties">true</param>     
  3. </result>  
 <result type="json">  
     <param name="excludeNullProperties">true</param>  
 </result>

5.3. ignoreHierarchy 参数:表示是否忽略等级,也就是继承关系,比如:TestAction继承于BaseAction,那么TestAction中返回的json字符串默认是不会包含父类BaseAction的属性值,ignoreHierarchy值默认为true,设置为false后会将父类和子类的属性一起返回。
Java代码 复制代码 收藏代码
  1. <result type="json">     
  2.     <param name="ignoreHierarchy">false</param>     
  3. </result>   
 <result type="json">  
     <param name="ignoreHierarchy">false</param>  
 </result> 

5.4. includeProperties 参数:输出结果中需要包含的属性值,这里正则表达式和属性名匹配,可以用“,”分割填充多个正则表达式。
   如:输出person的所有属性
Java代码 复制代码 收藏代码
  1. <result type="json">     
  2.     <param name="includeProperties">person.*, person\.name</param>     
  3. </result>  
 <result type="json">  
     <param name="includeProperties">person.*, person\.name</param>  
 </result>

5.5. excludeProperties 参数:输出结果需要剔除的属性值,也支持正则表达式匹配属性名,可以用“,”分割填充多个正则表达式,类同

转自
http://cqjava.iteye.com/blog/465495
http://yxgyh.iteye.com/blog/686317
分享到:
评论

相关推荐

    jsonplugin源码包

    例如,`&lt;interceptor-ref name="defaultStack"&gt;`表明JSONPlugin使用了默认的拦截器栈,并可能在其中添加或调整了特定的拦截器来处理JSON相关的逻辑。 再来看看`com`目录。这通常包含了源代码的包结构。在这个源码包...

    Jsonplugin结合struts2使用说明

    在提供的文档《Struts2_Jsonplugin_详解.doc》和《JsonPlugin 使用.docx》中,你应该能找到更具体的使用示例和详细配置信息。这些文档可能涵盖了如何处理集合类型、自定义类型转换器、错误处理以及与其他Struts2功能...

    jsonplugin-0.33.jar

    JSONPlugin-0.33.jar 是一个专门为Struts2框架设计的插件,主要用于扩展Struts2的功能,使其能够更好地...如果你正在使用Struts2开发项目,尤其是涉及到大量AJAX交互,那么了解并掌握JSONPlugin的使用是十分必要的。

    jsonplugin.jar包

    jsonplugin-0.32.jar jsonplugin.jar包

    jsonplugin

    java structs jsonplugin

    jsonplugin-0.32.jar

    在使用jsonplugin-0.32.jar时,开发者需要将其添加到项目类路径中,然后在Struts2的配置文件(struts.xml或struts-plugin.xml)中进行相应的配置。例如,可以添加一个全局结果类型,让所有Action都能返回JSON: ```...

    JsonPlugin

    总之,JsonPlugin 是一个方便开发人员处理 JSON 数据的工具,它提供了一套非静态类函数接口,便于在蓝图系统中使用,并且通过集成库的方式确保了打包后的可移植性。对于游戏开发和需要处理 JSON 数据的项目来说,这...

    jsonplugin插件

    JSONPlugin插件是针对Struts2.1.8框架的一个扩展,主要目的是为了方便地将Java对象转换为JSON(JavaScript Object Notation)格式的数据,以便与ExtJS这样的前端JavaScript库进行交互。在Web开发中,JSON作为一种轻...

    jsonplugin-0.31.jar

    jsonplugin-0.31.jar 使用JSON的一个架包.

    JSONPLUGIN源码

    在使用JSONPLUGIN之前,你需要在Struts2的配置文件(如struts.xml)中添加对应的插件配置,以启用JSON支持。这通常包括导入插件的依赖,并声明全局结果类型。 2. **Action的JSON结果**: 在Action类中,你可以...

    jsonplugin-0.32.jar 1268047053905-integrated.jnlp

    1268047053905-integrated.jnlp jsonplugin-0.32.jar

    jsonplugin, 对 struts2.1.X版本jsonplugin-0.34.jar 的修改

    第一次上传,要5分,是物有所值,处理了jsonplugin 的no session的问题,并且添加了,新的注释,例如 @JSON(exclude='对象的名称') 就可以剔除 解决json与Hibernate之间的大部分问题 1.数据只取三层 2.对one-ton-many ,...

    json资源jsonplugin-0.33,2.1.8,2.1.6

    JSON(JavaScript Object Notation)是一种轻量级的数据交换格式,它采用完全独立于语言的文本格式,但也使用了类似于C家族语言(包括C、C++、C#、Java、JavaScript等)的习惯,使得这些语言的程序员可以很容易地...

    jsonplugin-0.7.jar

    struts2后台直接返回json对象,ajax开发必备

    jsonplugin+json.jar

    JSONplugin+json.jar是针对JSON处理的一个插件,通常包含了一些方便开发者处理JSON数据的工具和类库。 在Java开发环境中,当我们需要处理JSON数据时,通常会引入像json.jar这样的第三方库。这个jar包可能包含了如下...

    jsonplugin(struts2.0)

    1. **安装与配置**:JSONPlugin的使用需要先将其对应的JAR文件(如jsonplugin-0.32(struts2.0.0).jar和jsonplugin-0.34(struts2.1.6).jar)添加到项目的类路径中。接着,在Struts2的配置文件(struts.xml或struts-...

    json 最新依赖包 jsonplugin-0.34, json-lib-2.3-jdk15,ezmorph-1.0.6

    commons-beanutils-1.8.0 commons-collections-3.2 commons-lang-2.4 commons-logging-1.1 ezmorph-1.0.6 json-lib-2.3-jdk15 jsonplugin-0.34

    struts2 的jar包jsonplugin-0.33.jar包

    在这个场景中,我们关注的是`jsonplugin-0.33.jar`,这是一个用于Struts2的插件,专门处理JSON(JavaScript Object Notation)数据格式的交互。 JSON是网络上数据交换的一种轻量级格式,因其简洁和高效而被广泛采用...

    json-lib和jsonplugin

    在Java中,使用`json-lib`和`jsonplugin`进行AJAX(Asynchronous JavaScript and XML)开发时,AJAX技术允许Web页面无需刷新即可与服务器交换数据并更新部分网页内容。这通常是通过XMLHttpRequest对象实现的,而JSON...

Global site tag (gtag.js) - Google Analytics