`
endual
  • 浏览: 3557964 次
  • 性别: Icon_minigender_1
  • 来自: 杭州
社区版块
存档分类
最新评论

关于json与struts2进行数据交互 (2010-11-02 20:17:33) 转载 标签: 杂谈 分类: java技术 为了怕以后的开发中出现同样的问

阅读更多

关于json与struts2进行数据交互

(2010-11-02 20:17:33)
标签:

杂谈

分类: java技术

为了怕以后的开发中出现同样的问题,现将问题记录起来
关于json与struts交互的问题
前台技术采用extjs:
strut2提供了支持json的插件
必须继承json-default、json-default继承自struts-default.
<package name="json" namespace="/" extends="json-default">

<action name="moduleAction" class="moduleAction" >

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

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

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

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

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 "findTree";
   }
 上面代码return "findTree"就会找到findTree的结果集,并将其封装起来,返回json给客户端

因此 action 可以配置多个result
分享到:
评论

相关推荐

    struts2-json-plugin-2.3.24-API文档-中文版.zip

    赠送jar包:struts2-json-plugin-2.3.24.jar; 赠送原API文档:struts2-json-plugin-2.3.24-javadoc.jar; 赠送源代码:struts2-json-plugin-2.3.24-sources.jar; 赠送Maven依赖信息文件:struts2-json-plugin-...

    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-plugin-2.3.8.jar

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

    struts2-json-plugin-2.2.1.jar

    struts2自带的json转换 倒入jar文件 struts.xml中 &lt;package ......extends="json-default" &lt;result type="json"/&gt;

    struts2-json-plugin-2.1.8jar包.zip

    Struts2 JSON Plugin是Apache Struts框架的一个扩展插件,主要功能是支持Struts2应用程序与JSON(JavaScript Object Notation)格式的数据进行交互。JSON是一种轻量级的数据交换格式,广泛用于Web服务和AJAX...

    struts2-json-plugin-2.1.8.1.jar

    标题"struts2-json-plugin-2.1.8.1.jar"表明这是Struts2 JSON插件的一个特定版本,2.1.8.1。在软件开发中,版本号的更新通常意味着修复了已知的错误,增加了新的特性,或者提高了性能。 "JsonPlugin.tld"是Tag ...

    struts2 json

    Struts2 JSON是一个在Java开发中广泛使用的框架,它允许开发者在Struts2应用程序中方便地处理JSON(JavaScript Object Notation)数据。JSON是一种轻量级的数据交换格式,易于人阅读和编写,同时也易于机器解析和...

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

    这三个文件的组合是为了解决Struts2框架中与JSON处理相关的版本不匹配问题,通过导入它们,开发者可以确保Struts2的JSON插件正常工作,同时利用JUnit插件进行更有效的测试,而`json-lib-2.1.jar`则为JSON数据处理...

    struts2-json-plugin-2.3.16.3.jar

    struts2 2.3.16.3 版本配置json所需要的jar文件。有时候版本不一致也会配置失败。

    struts2与json整合

    在探讨“Struts2与JSON整合”的主题时,我们深入分析了如何在Struts2框架中集成JSON技术,实现前后端数据的高效交互。Struts2作为一款流行的Java Web开发框架,提供了丰富的功能来简化Web应用程序的开发过程。而JSON...

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

    Struts2的JSON插件正是为了方便开发者在Struts2框架中处理JSON数据而设计的。 首先,让我们深入了解JSON。JSON是一种独立于语言的数据交换格式,具有易于人阅读和编写,同时也易于机器解析和生成的特点。它的数据...

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

    2. **struts2-json-plugin.jar**:这个是我们的主角,提供了JSON相关的类和配置,使得Struts2能够生成和解析JSON数据。 3. **xwork-core.jar**:XWork是Struts2的基础,它提供了许多基础组件,如ActionContext、...

    struts2-json-lib

    总之,"struts2-json-lib"提供了实现Struts2和JSON整合所需的全部组件,简化了在Java Web应用中处理JSON数据的过程。正确地配置和使用这些库,可以大大提升开发者的生产力,让Web应用具备更强大的数据交互能力。

    json+struts2整合jar包

    标题中的"json+struts2整合jar包"指的是将JSON功能集成到Struts2框架中,以便在服务器端与客户端之间进行数据交互。Struts2提供了一个插件——Struts2-JSON-Plugin,用于支持JSON序列化和反序列化,使得Action类可以...

    struts2--json包

    在Struts2中,JSON(JavaScript Object Notation)包是一个关键组件,它提供了与JSON数据格式交互的能力,使得Web应用能够更高效地进行客户端和服务器端的数据交换。JSON是一种轻量级的数据交换格式,它易于人阅读和...

    struts-2.5所有jar包

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

    struts-ajax-json-struts包

    Struts-AJAX-JSON-Struts 包是基于经典的Struts框架,为了实现AJAX(异步JavaScript和XML)和JSON(JavaScript Object Notation)交互功能而设计的一组库和资源集合。这个包通常包含了Struts框架的核心组件,以及...

    struts2+json

    这个资源"struts2+json"显然涉及到在Struts2框架下实现JSON(JavaScript Object Notation)数据交换,这是一种轻量级的数据交换格式,广泛用于前后端交互,特别是AJAX(Asynchronous JavaScript and XML)请求。...

Global site tag (gtag.js) - Google Analytics