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

struts2支持json

 
阅读更多

strut2要支持json的插件,必须继承json-default、json-default继承自struts-default.
<package name="json" namespace="/" extends="json-default">

<action name="testAction" class="com.testAction" >

               <result type="json" name="queryData">
                 <param name="root">datas</param>
                 <param name="includeProperties">success,totalcount</param>
               </result>

               <result type="json" name="success">
                 <param name="root">result</param>
               </result>
</action>

1,result中type设置成json之后,容器会把action的属性自动封装到一个json对象中(json拦截器来做),然后调用ajax的callback方法. 返回json数据

2,includeProperties 参数:输出结果中需要包含的属性值,这里正则表达式和属性名匹配,可以用“,”分割填充多个正则表达式,如<param name="includeProperties">person.*,user\.userName</param>  表示是person的所有属性及用户的用户名,一般是需要展示的属性比较少时。

3,excludeProperties 参数:输出结果需要排除的属性值,也支持正则表达式匹配属性名,可以用“,”分割填充多个正则表达式,类同includeProperties,一般是需要展示的属性比较多时。

4,为什么要用includeProperties或excludeProperties 参数:
     主要是为了过滤掉接口,pojo的set、list、其它对象等不需要的数据防止循环取其它关联对象或找不到接口。

     如果不配置,默认是处理 action中的所有属性,如果action中有接口注入,json拦截器可能找不到接口而返回不了结果;

    还有如果action中有一个对象,这个对象与好多对象都有关联,json拦截器会将相关联的所有对象的属性全部转换成json格式,

    如果其它对象有list、set,其返回结果相当庞大。
   如果不用<param name="includeProperties">或其他方式进行json数据过滤,通过debug你会发现前台返回的json字符串是把 action中的所有属性全部转化成json字符串返回给客户端

 (包括service接口、pojo所有属性及有关联的pojo。有时候根本返回不了结果,也不报错,后台执行了,

  但前台执行不到callback function,这主要是因为找不到接口或者关联的pojo太多,造成死循环),

  一般情况下用的最多的就是root、 includeProperties 和excludeNullProperties参数。

  当然还有其他的方法,如给pojo的属性加json注解。

5,result标签中的name属性,即表示是struts2中的action类中返回的名称

     public String findAllById() throws Exception{
      int id=Integer.parseInt( this.request.getParameter("pid"));
       List<ModuleBean> list=service.findById(id);
       return "success";
   }
 上面代码return "success"就会找到success的结果集,并将其封装起来,返回json给客户端

因此 action 可以配置多个result

分享到:
评论

相关推荐

    struts2-json

    Struts2支持JSON的处理,使得开发人员能够轻松地将Java对象转换为JSON格式,然后发送到客户端,或者将JSON数据解析成Java对象。下面我们将深入探讨Struts2集成JSON的相关知识点。 1. **Struts2 JSON插件**: ...

    struts2+json

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

    Struts2支持Json的Jar

    2. `struts2-json-plugin.jar`:这是一个插件文件,专门用于扩展Struts2以支持JSON。这个插件包含处理JSON请求和返回JSON响应所需的类和方法。 3. `xwork-core.jar`:XWork是Struts2的前身,其核心库也包含在Struts...

    struts2-json-plugin

    struts2-json-plugin,Struts JSON插件

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

    这个压缩包包含了两个关键的组件:json-lib-2.1.jar和struts2-json-plugin-2.1.8.1.jar,它们是Struts2支持JSON(JavaScript Object Notation)序列化和反序列化的关键。 1. **json-lib-2.1.jar**: JSON是一种轻...

    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应用程序。这个插件允许...

    ExtJs + Struts2 + JSON 程序总结

    由于Struts2支持JSON插件,可以将这些数据转换成JSON格式并直接返回给前端。这通常需要引入JSON库,例如JSON-LIB,它依赖于几个其他库,如BeanUtils、Collections和Ezmorph。 `getAllOrder` 方法的实现可能包含以下...

    struts2与json整合

    接下来,我们需要在Struts2的配置文件中添加对JSON支持的配置。这通常是在`struts.xml`文件中完成的,通过声明`json-default`包,并且在其中定义结果类型和拦截器。例如: ```xml &lt;package name="json-default" ...

    struts2-json-plugin源码

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

    struts2返回JSON数据的两种方式

    Struts2提供了一套方便的机制来支持JSON数据的处理。 ### 第一种方式:使用`response.getWriter().print(...)`方法 1. **前端**: 在JSP页面中,使用jQuery的AJAX方法发送POST请求到服务器。这里的`dataType`设置...

    struts2-json-plugin-2.3.8.jar

    Struts2 JSON Plugin是针对Apache Struts2框架的一个重要组件,版本为2.3.8。这个插件主要的功能是让Struts2应用程序能够轻松地处理JSON(JavaScript Object Notation)数据格式,使得Web应用可以方便地进行JSON序列...

    Struts2ToJson003.zip

    首先,要让Struts2支持JSON,我们需要在项目的类路径下添加Struts2的JSON插件库。这个插件通常包含在struts2-core的jar文件中,或者可以单独下载struts2-json-plugin.jar并将其加入到项目的lib目录。 接下来,我们...

    struts2所需的包和Struts2_json所需包

    3. **第三方库**:为了支持JSON操作,可能还需要一些第三方库,例如: - `json-lib.jar`:这是一个Java库,提供了多种方式将Java对象转换为JSON格式,反之亦然。 - `jackson-*.jar` 或 `gson-*.jar`:这两个库提供...

    struts2 json传输对象文档+jar包

    标题提到的"struts2 json传输对象文档"是指Struts2支持JSON格式的数据传输,使得Action类可以直接返回JSON对象,以便在客户端进行处理。这种功能极大地提高了Web应用的响应速度和用户体验,因为可以避免不必要的页面...

    Struts2返回JSON对象的方法总结完整实例

    如果是作为客户端的HTTP+JSON接口工程,没有JSP等view视图的情况下,使用Jersery框架开发绝对是第一选择。... Struts2返回JSON有两种方式:1.使用Servlet的输出流写入JSON字符串;2.使用Struts2对JSON的扩展。

    Struts2_JSON_Demo

    在"Struts2_JSON_Demo"这个项目中,我们将看到如何在Struts2框架中集成JSON支持,以实现前后端的数据交互。以下是一些关键的知识点: 1. **Struts2 JSON插件**:Struts2提供了内置的JSON插件,允许我们直接将Action...

    Struts2-JSON-Example

    首先,为了使Struts2支持JSON响应,我们需要在项目中添加Struts2的JSON插件。这个插件通常包含在Struts2的核心库中,如果没有,可以单独下载或在Maven或Gradle的依赖配置中添加。 在Struts2的配置文件(struts.xml...

    struts2-json-lib

    在Struts2框架中整合JSON,可以让应用更好地支持RESTful服务,使得前端与后端之间的交互更为便捷。为了实现这一整合,我们需要一些特定的库或jar包。"struts2-json-lib"压缩包就是为了满足这个需求而提供的,它包含...

    Struts2 加入JSON,JQUERY

    为了使Struts2支持JSON,我们需要在项目中引入相应的依赖。在提供的“Struts2-JsonJquery-lib”压缩包中,可能包含了Struts2的JSON插件和其他必要的库。通常,这些库包括`struts2-json-plugin`、`jquery`和可能的...

    struts2+json的使用

    2. 配置Struts2的JSON插件:在struts.xml配置文件中,添加JSON插件的配置,以启用JSON支持。 ```xml &lt;constant name="struts.enable.SMD" value="true"/&gt; &lt;constant name="struts.action.extension" value=",json"/...

Global site tag (gtag.js) - Google Analytics