`

Json Struts-Action 配置

 
阅读更多

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

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

参考文档 :http://struts.apache.org/2.2.3/docs/json-plugin.html

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里面的

Xml代码
<package name="default" extends="struts-default">

改为

Xml代码
 <package name="default" extends="json-default">


4.Action中的配置

Xml代码
<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提供了一些参数替你解决这个问题

例子:

action类

Java代码
 public class BaseAction extends ActionSupport implements { private Person person = null; ... }

bean类

Java代码
 public class Person { private String name; private int age; ... }

5.1. root参数:从返回结果中根据ognl表达式取出你需要输出的结果

我们只要输出person对象的name属性值,配置如下

Xml代码
 <result type="json"> <param name="root">person.name</param> </result>

5.2. excludeNullProperties 参数:表示是否去掉空值,默认值是false,如果设置为true会自动将为空的值过滤,只输出不为空的值。

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


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

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

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

如:输出person的所有属性

Xml代码
 <result type="json"> <param name="includeProperties">person.*, person/.name</param> </result>

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

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

分享到:
评论

相关推荐

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

    - 插件集成:此插件使得Struts 2可以无缝集成JSON支持,无需额外的配置。 - JSON Action:允许Action返回JSON结果,而不是HTML,这对于AJAX请求非常有用。 - 自动映射:自动将Action的属性映射到JSON对象,简化了...

    struts2-json-plugin-2.3.8.jar

    在实际开发中,为了使用这个插件,你需要将`struts2-json-plugin-2.3.8.jar`文件放入项目的类路径(classpath)下,然后在Struts2的配置文件(通常为struts.xml)中启用JSON插件。在Action类中,定义返回JSON数据的...

    struts-json-plugin-2.1.8.jar struts2-junit-plugin-2.1.8.jar json-lib-2.1.jar

    它扩展了JUnit,使得Struts2的控制器可以在单元测试环境中运行,从而能够更好地测试Action和整个MVC流程。这个插件在2.1.8版本中也包含了对Struts2核心库的依赖,确保了测试的兼容性。 最后,`json-lib-2.1.jar`是...

    struts2-json-plugin源码

    `struts2-json-plugin`是Struts2的一个插件,它使得Struts2能够处理JSON请求和响应,无需额外的配置或库。这个插件不仅包含了源码,还包含了必要的配置文件和类,使得开发者可以深入理解其工作原理并进行自定义扩展...

    struts2 相关jar包 包含json-lib-2.1.jar+struts2-json-plugin-2.1.8.1.jar

    - **配置文件**:通常有struts.xml或类似的配置文件,用于定义Action、结果类型、拦截器栈等。 4. **使用步骤**: - 引入必要的JAR包,包括struts2-core.jar、json-lib-2.1.jar和struts2-json-plugin-2.1.8.1.jar...

    struts-ajax-json-struts包

    使用这些库和插件时,开发者需要在Struts配置文件中定义AJAX和JSON相关的配置,比如指定AJAX结果类型或者JSON插件的设置。同时,前端页面需要使用JavaScript(可能是jQuery或其他库)来发起AJAX请求,并处理返回的...

    struts2-json-plugin-2.1.8jar包.zip

    要使用此插件,首先需要在Struts2的配置文件(如struts-default.xml或struts-plugin.xml)中引入JSON插件的配置,通常会添加以下XML代码: ```xml &lt;constant name="struts.enable.SlashesInActionNames" value=...

    (struts2-json-plugin-2.2.1)struts2 json-default配置中需要的jar包

    这段配置告诉Struts2,除了`.action`扩展名外,还接受`.json`扩展,并且有一个结果类型为`json`的Action,这样当客户端请求以`.json`结尾的URL时,Struts2会返回JSON格式的数据。 总的来说,理解和正确配置这些JAR...

    struts2-json-plugin-2.1.8.1.jar

    在Struts2框架中,该插件允许开发者将Action的返回结果直接转换为JSON格式,方便进行Ajax(Asynchronous JavaScript and XML)操作,提高Web应用的响应速度和用户体验。 标题"struts2-json-plugin-2.1.8.1.jar"表明...

    struts-2.5.20-all(含struts2-json-plugin.jar)jar资源

    总结来说,"struts-2.5.20-all"压缩包提供了完整的Struts 2框架,包括Action、Interceptor、ValueStack等核心组件,而`struts2-json-plugin.jar`则增强了Struts 2对JSON数据的支持,使得开发基于JSON的Web应用更加...

    struts-2.5所有jar包

    3. **struts2-json-plugin**: 提供了对JSON格式数据的支持,使得Action可以直接返回JSON响应,便于AJAX和API开发。 4. **struts2-dojo-plugin**: 提供了与Dojo JavaScript库的集成,方便创建富客户端界面。 5. **...

    struts2-json-plugin

    处理action返回结果和json互转 struts2-json-plugin-2.3.1.2.jar

    struts-2.5.2-all.zip

    2. **配置文件**:主要包括`struts.xml`,这是Struts 2的主配置文件,用于定义Action、结果类型、拦截器等。通过配置文件,开发者可以灵活地控制请求的映射和处理方式。 3. **拦截器(Interceptors)**:这是Struts...

    struts-2.3.16-all

    Struts 2的配置主要通过struts.xml文件完成,它可以配置Action、Result、Interceptor及其组合,定义URL到Action的映射,以及Action的输入和输出等。此外,Struts 2还支持注解配置,使得开发者可以直接在Action类上...

    struts-2.0.1-all.zip

    在实际开发中,开发者需要将这些jar包添加到项目的类路径中,然后按照Struts 2的配置规范设置struts.xml文件,定义Action、Result以及拦截器链。此外,还需要创建Action类,实现业务逻辑,并使用OGNL来绑定数据。 ...

    struts-2.3.16.1-all

    3. **配置Action**:在struts.xml文件中定义Action及其关联的视图和拦截器。 4. **编写视图**:根据结果类型创建对应的JSP或Freemarker页面。 5. **运行与测试**:运行应用,通过HTTP请求触发Action,观察和调试...

    struts-2.5.22-all.zip

    在实际开发中,使用Struts2 2.5.22时,开发者需要了解Action、Result、Interceptor的基本概念,以及如何编写Action类、配置Struts.xml文件,还要掌握OGNL的使用来绑定数据。同时,为了提高安全性和性能,还需要关注...

    struts-2.5.20-all.rar

    2. **配置文件**:Struts2使用XML配置文件(通常命名为struts.xml或struts-default.xml)来定义Action、结果、拦截器等。这些配置告诉Struts如何映射HTTP请求到Action类,以及Action执行后如何显示结果。 3. **拦截...

    struts-2.3.16.3-docs.zip

    4. **插件支持**:Struts 2有一个丰富的插件生态系统,可以扩展其功能,如Tiles、Freemarker、JSON等。这些插件可能在2.3.16.3版本中得到了更新或增强。 5. **模型驱动(ModelDriven)**:该模式允许Action直接与...

Global site tag (gtag.js) - Google Analytics