`
cheng888qi
  • 浏览: 284381 次
  • 性别: Icon_minigender_1
  • 来自: 武汉
社区版块
存档分类
最新评论

[记录]struts2的json插件配置详解(附demo)

阅读更多

为了方便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里面的

<package name="default" extends="struts-default">

  改为

<package name="default" extends="json-default">

 

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类

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会自动将为空的值过滤,只输出不为空的值。

<result type="json">
	<param name="excludeNullProperties">true</param>
</result>

 

  5.3. ignoreHierarchy 参数:表示是否忽略等级,也就是继承关系,比如:TestAction继承于BaseAction,那么TestAction中返回的json字符串默认是不会包含父类BaseAction的属性值,ignoreHierarchy值默认为true,设置为false后会将父类和子类的属性一起返回。

<result type="json">
	<param name="ignoreHierarchy">false</param>
</result>

 

  5.4. includeProperties 参数:输出结果中需要包含的属性值,这里正则表达式和属性名匹配,可以用“,”分割填充多个正则表达式。

   如:输出person的所有属性 

<result type="json">
	<param name="includeProperties">person.*, person\.name</param>
</result>

 

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

31
4
分享到:
评论
10 楼 JEfuye 2013-06-06  
good                  
9 楼 蜀山红日 2012-10-24  
楼主是好人
8 楼 编程的石头 2011-11-29  
楼主太给力了,终于找到一个可以运行的了
7 楼 zxhDaniel 2011-08-19  
感谢楼主,我终于找到了一篇比较像样点的介绍这个方面知识的文章了~
6 楼 三月沙 2011-03-27  
正要解决json返回数据的问题,主要是返回自己需要的格式的数据,非常感谢
5 楼 cheng888qi 2010-11-04  
Y2N2C2J2 写道
我按照上面的方法写,可是前台页面js报rows.length为空或不是对象,而且我也跟踪到返还的结果,后台生成了json对象,同时Action中json对象jObjectResult属性都有Set、Get方法,struts.xml中的配置为
<result type="json"> 
    <param name="root">jObjectResult</param> 
</result> 
就是在前台JS中获取不到后台返换的json对象,如何解决啊,请明示,谢谢!

jObjectResult是对象名,还是对象的属性名,如果是取对象的属性,应该是 “对象名.属性名”,另外建议你把demo程序跑起来,仔细和自己的程序对照,看是否有地方有问题。
4 楼 Y2N2C2J2 2010-11-04  
我按照上面的方法写,可是前台页面js报rows.length为空或不是对象,而且我也跟踪到返还的结果,后台生成了json对象,同时Action中json对象jObjectResult属性都有Set、Get方法,struts.xml中的配置为
<result type="json"> 
    <param name="root">jObjectResult</param> 
</result> 
就是在前台JS中获取不到后台返换的json对象,如何解决啊,请明示,谢谢!
3 楼 ziyoutian 2010-06-18  
请问楼主,如何将返回到客户端的json显示在页面上呢?
2 楼 yanlei3032 2010-03-22  
非常感谢,找了几天才发现真正有用的 
1 楼 andy222241 2010-01-11  
我现在用到dispatchAction,我只是其中一个方法用到jason,该怎么配置呢?

相关推荐

    struts2的json插件配置详解(附demo)

    为了方便ajax调用传输数据,在struts2中加入的json插件用来做对象的序列化和反序列化,json插件的下载地址 http://code.google.com/p/jsonplugin/ 1. 下载json插件包,将jar包拷贝到WEB-INF/lib目录 注:struts2...

    struts2的json插件配置详解(附示例strutsJson)

    这篇博客将深入讲解Struts2的JSON插件配置,并通过实例“strutsJson”来演示具体用法。 首先,让我们了解JSON插件的基本配置。在Struts2框架中,我们需要在`struts.xml`配置文件中引入JSON插件的相关配置。这通常...

    使用Struts2的JSON插件来实现JSON数据传递

    然后,在Struts2的配置文件struts.xml中启用JSON插件,通常通过以下配置实现: ```xml &lt;constant name="struts.enable.SlashesInActionNames" value="true"/&gt; &lt;constant name="struts.action.extension" value=...

    struts2的json插件

    1. **自动转换Action结果到JSON**:当你配置了JSON插件后,Struts2可以将Action的结果对象自动转换为JSON格式,然后返回给客户端,无需额外的代码处理。 2. **支持数据过滤**:你可以指定哪些字段应该被包含在JSON...

    Struts2_JSON_Demo

    1. **Struts2 JSON插件**:Struts2提供了内置的JSON插件,允许我们直接将Action的返回值转换为JSON格式。安装并配置该插件后,只需在Action类的方法上添加`@Result(type="json")`注解,即可启用JSON响应。 2. **...

    struts2json.rar_DEMO

    1. **自动序列化**: Struts2JSON插件可以自动将Java对象序列化为JSON格式,无需手动转换。 2. **配置简单**: 通过简单的配置,可以指定哪些Action方法返回JSON响应。 3. **性能优化**: 插件内置了缓存机制,对于相同...

    struts2+json

    在Struts2中集成JSON支持,首先需要添加相应的依赖,比如struts2-json-plugin,这个插件提供了JSON结果类型。当Action执行完毕后,可以返回一个JSON结果类型,Struts2会自动将Action的属性转换为JSON格式并返回给...

    struts 2.0 与 2.1 需要的json插件

    - JSON插件通常作为一个独立的JAR文件提供,比如`struts2-json-plugin-x.x.x.jar`,你需要将其添加到项目的类路径中。 - 如果你使用的是Maven,可以在pom.xml文件中添加依赖。例如,对于Struts 2.0和2.1版本,你...

    struts2 json

    1. **Struts2 JSON插件**:为了支持JSON,你需要在Struts2项目中添加JSON插件。这个插件提供了一组拦截器和结果类型,使得Action可以直接返回JSON响应。 2. **xwork-core-2.1.6.jar**:这是Struts2的核心库,包含了...

    Struts2 json插件入门指南.pdf

    ### Struts2 JSON插件入门知识点详解 #### 1. 依赖包 - **Struts2 必需的 6 个 jar 包** - `commons-fileupload-1.2.2.jar`: 提供了文件上传功能的支持。 - `commons-io-2.0.1.jar`: 用于处理I/O操作,简化输入...

    struts2-json-plugin

    struts2-json-plugin,Struts JSON插件

    struts2与json整合

    要实现Struts2与JSON的整合,首先需要在项目中引入Struts2 JSON插件。根据给定的部分内容,可以看到使用的是`struts2-json-plugin-2.1.8.1.jar`这个JAR包。该插件包含处理JSON相关的类库,使得Struts2能够识别并处理...

    struts2-json-plugin源码

    在Struts2中,通过整合JSON插件,可以方便地将Action的返回结果转换为JSON格式,供前端JavaScript处理。 `struts2-json-plugin`是Struts2的一个插件,它使得Struts2能够处理JSON请求和响应,无需额外的配置或库。这...

    json+struts2插件

    这可以实现struts和json的整合 &lt;struts&gt; &lt;package name="demo" extends="json-default"&gt; &lt;result type="json"/&gt; &lt;/action&gt; &lt;/struts&gt;

    Struts2返回json -- demo

    4. **JSON插件配置**:在`struts.properties`或`struts.xml`中启用JSON插件: ```properties struts.enable.SMD = true struts.json.includeDefaultProperties = true ``` 或者 ```xml &lt;constant name="struts....

    struts2乱码与json插件(1)

    在这个主题中,“struts2乱码与json插件”主要关注两个方面:字符编码问题和JSON数据交互。 **字符编码问题** 在开发web应用时,乱码问题经常出现,尤其是在处理用户输入或显示非ASCII字符时。Struts2框架默认使用...

    Struts2.5操作JSON相关jar包

    配置Struts2的JSON插件,需要在`struts.xml`配置文件中添加以下内容: ```xml &lt;constant name="struts.enable.SMD" value="true" /&gt; &lt;constant name="struts.action.extension" value="json" /&gt; ...

    json-lib-2.1.jar和struts2-json-plugin-2.1.8.1.jar

    `struts2-json-plugin-2.1.8.1.jar` 则是Struts 2框架的一个插件,主要用于增强Struts 2对JSON的支持。Struts 2是一款非常流行的MVC(Model-View-Controller)框架,用于构建企业级的Java Web应用程序。这个插件允许...

    struts2-json

    Struts2提供了JSON插件,允许开发者在Action类中返回JSON响应。安装插件后,只需在Action配置中启用JSON支持,就能自动处理JSON输出。 2. **Action配置**: 在Struts2的配置文件(struts.xml或struts.properties)...

Global site tag (gtag.js) - Google Analytics