- 浏览: 3560783 次
- 性别:
- 来自: 杭州
文章分类
- 全部博客 (1491)
- Hibernate (28)
- spring (37)
- struts2 (19)
- jsp (12)
- servlet (2)
- mysql (24)
- tomcat (3)
- weblogic (1)
- ajax (36)
- jquery (47)
- html (43)
- JS (32)
- ibatis (0)
- DWR (3)
- EXTJS (43)
- Linux (15)
- Maven (3)
- python (8)
- 其他 (8)
- JAVASE (6)
- java javase string (0)
- JAVA 语法 (3)
- juddiv3 (15)
- Mule (1)
- jquery easyui (2)
- mule esb (1)
- java (644)
- log4j (4)
- weka (12)
- android (257)
- web services (4)
- PHP (1)
- 算法 (18)
- 数据结构 算法 (7)
- 数据挖掘 (4)
- 期刊 (6)
- 面试 (5)
- C++ (1)
- 论文 (10)
- 工作 (1)
- 数据结构 (6)
- JAVA配置 (1)
- JAVA垃圾回收 (2)
- SVM (13)
- web st (1)
- jvm (7)
- weka libsvm (1)
- weka屈伟 (1)
- job (2)
- 排序 算法 面试 (3)
- spss (2)
- 搜索引擎 (6)
- java 爬虫 (6)
- 分布式 (1)
- data ming (1)
- eclipse (6)
- 正则表达式 (1)
- 分词器 (2)
- 张孝祥 (1)
- solr (3)
- nutch (1)
- 爬虫 (4)
- lucene (3)
- 狗日的腾讯 (1)
- 我的收藏网址 (13)
- 网络 (1)
- java 数据结构 (22)
- ACM (7)
- jboss (0)
- 大纸 (10)
- maven2 (0)
- elipse (0)
- SVN使用 (2)
- office (1)
- .net (14)
- extjs4 (2)
- zhaopin (0)
- C (2)
- spring mvc (5)
- JPA (9)
- iphone (3)
- css (3)
- 前端框架 (2)
- jui (1)
- dwz (1)
- joomla (1)
- im (1)
- web (2)
- 1 (0)
- 移动UI (1)
- java (1)
- jsoup (1)
- 管理模板 (2)
- javajava (1)
- kali (7)
- 单片机 (1)
- 嵌入式 (1)
- mybatis (2)
- layui (7)
- asp (12)
- asp.net (1)
- sql (1)
- c# (4)
- andorid (1)
- 地价 (1)
- yihuo (1)
- oracle (1)
最新评论
-
endual:
https://blog.csdn.net/chenxbxh2 ...
IE6 bug -
ice86rain:
你好,ES跑起来了吗?我的在tomcat启动时卡在这里Hibe ...
ES架构技术介绍 -
TopLongMan:
...
java public ,protect,friendly,private的方法权限(转) -
贝塔ZQ:
java实现操作word中的表格内容,用插件实现的话,可以试试 ...
java 读取 doc poi读取word中的表格(转) -
ysj570440569:
Maven多模块spring + springMVC + JP ...
Spring+SpringMVC+JPA
关于json与struts2进行数据交互 (2010-11-02 20:17:33) 转载 标签: 杂谈 分类: java技术 为了怕以后的开发中出现同样的问
- 博客分类:
- struts2
为了怕以后的开发中出现同样的问题,现将问题记录起来
关于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
<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的执行机制
2012-10-21 18:37 1623struts2是web应用中一个常用的mvc框架,下面探 ... -
Struts 2请求处理流程 命令模式2
2012-10-16 16:20 1794将“请求”封装成命令对象。把行为请求者和行为实现者进行解耦。 ... -
Struts 2请求处理流程 命令模式
2012-10-16 16:15 2837Struts 2请求处理流程 2010-06 ... -
STRUTS2核心控制器:FilterDispatcher (写的真心清晰)
2012-10-16 16:07 37076STRUTS2核心控制 ... -
struts2源码阅读1
2012-10-16 11:09 1287Struts2源码阅读 ... -
struts2 文件上传
2012-08-12 16:20 16072、新建Action 第一种方式 packag ... -
Struts2实现的6位数字的验证码程序
2012-08-05 16:39 1255http://ipc.iteye.com/bl ... -
Struts2 异步跳转页面被js extjs jquery ajax 拦截(转)
2012-08-04 16:51 4980Struts2中使用getJSON方式进行 ... -
struts2 拦截器权限控制
2012-08-04 10:37 1712工程布局: 直 ... -
struts2学习的博客
2012-02-26 10:59 1277http://downpour.iteye.com/blog/ ... -
拦截器 参数不过去
2012-02-26 10:28 4616还是同样的问题,拦截器在以前学的时候,学的 ... -
struts 国际化乱码
2012-02-25 09:15 1758差不多半年没复习框架了,都在搞论文和打基础,什么算法和数 ... -
struts2国际化
2012-02-25 08:38 1508struts2国际化 在struts2中需要做国际化的有 ... -
struts2拦截器的实现
2012-02-25 08:39 1620如何使用struts2拦截 ... -
struts2连mysql乱码解决方法
2011-08-27 20:34 1549(2009-11-12 20:12:47) 转 ... -
struts2 jquery
2011-05-08 09:30 1681使用这个组合,感觉还是很方便灵活的。 1、将struts2的 ... -
struts2 <s:if> list map set 判断为空的问题
2011-04-25 13:18 8503<s:if test="#request.li ... -
struts2 标签 获取 request
2011-04-25 10:44 2403在Action中获取request方法一: 在Action ...
相关推荐
赠送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-...
`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`文件放入项目的类路径(classpath)下,然后在Struts2的配置文件(通常为struts.xml)中启用JSON插件。在Action类中,定义返回JSON数据的...
学习`struts2-json-plugin`的源码可以帮助开发者了解Struts2如何处理JSON数据,如何进行自定义扩展,以及如何优化JSON相关的性能。同时,对于理解MVC框架的工作流程和JSON在网络应用中的应用也有很大帮助。深入研究...
这个压缩包包含了两个关键的组件: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转换 倒入jar文件 struts.xml中 <package ......extends="json-default" <result type="json"/>
Struts2 JSON Plugin是Apache Struts框架的一个扩展插件,主要功能是支持Struts2应用程序与JSON(JavaScript Object Notation)格式的数据进行交互。JSON是一种轻量级的数据交换格式,广泛用于Web服务和AJAX...
标题"struts2-json-plugin-2.1.8.1.jar"表明这是Struts2 JSON插件的一个特定版本,2.1.8.1。在软件开发中,版本号的更新通常意味着修复了已知的错误,增加了新的特性,或者提高了性能。 "JsonPlugin.tld"是Tag ...
Struts2 JSON是一个在Java开发中广泛使用的框架,它允许开发者在Struts2应用程序中方便地处理JSON(JavaScript Object Notation)数据。JSON是一种轻量级的数据交换格式,易于人阅读和编写,同时也易于机器解析和...
- **JSON支持**:Struts2提供了一个名为`struts2-json-plugin`的插件,用于支持JSON格式的数据交换。 - **配置插件**:在`struts.xml`中启用JSON插件,配置Action支持JSON输出。 - **Action方法返回值**:Action...
这三个文件的组合是为了解决Struts2框架中与JSON处理相关的版本不匹配问题,通过导入它们,开发者可以确保Struts2的JSON插件正常工作,同时利用JUnit插件进行更有效的测试,而`json-lib-2.1.jar`则为JSON数据处理...
struts2 2.3.16.3 版本配置json所需要的jar文件。有时候版本不一致也会配置失败。
在探讨“Struts2与JSON整合”的主题时,我们深入分析了如何在Struts2框架中集成JSON技术,实现前后端数据的高效交互。Struts2作为一款流行的Java Web开发框架,提供了丰富的功能来简化Web应用程序的开发过程。而JSON...
Struts2的JSON插件正是为了方便开发者在Struts2框架中处理JSON数据而设计的。 首先,让我们深入了解JSON。JSON是一种独立于语言的数据交换格式,具有易于人阅读和编写,同时也易于机器解析和生成的特点。它的数据...
2. **struts2-json-plugin.jar**:这个是我们的主角,提供了JSON相关的类和配置,使得Struts2能够生成和解析JSON数据。 3. **xwork-core.jar**:XWork是Struts2的基础,它提供了许多基础组件,如ActionContext、...
总之,"struts2-json-lib"提供了实现Struts2和JSON整合所需的全部组件,简化了在Java Web应用中处理JSON数据的过程。正确地配置和使用这些库,可以大大提升开发者的生产力,让Web应用具备更强大的数据交互能力。
标题中的"json+struts2整合jar包"指的是将JSON功能集成到Struts2框架中,以便在服务器端与客户端之间进行数据交互。Struts2提供了一个插件——Struts2-JSON-Plugin,用于支持JSON序列化和反序列化,使得Action类可以...
在Struts2中,JSON(JavaScript Object Notation)包是一个关键组件,它提供了与JSON数据格式交互的能力,使得Web应用能够更高效地进行客户端和服务器端的数据交换。JSON是一种轻量级的数据交换格式,它易于人阅读和...
3. **struts2-json-plugin**: 提供了对JSON格式数据的支持,使得Action可以直接返回JSON响应,便于AJAX和API开发。 4. **struts2-dojo-plugin**: 提供了与Dojo JavaScript库的集成,方便创建富客户端界面。 5. **...