- 浏览: 3507534 次
- 性别:
- 来自: 杭州
文章分类
- 全部博客 (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 1589struts2是web应用中一个常用的mvc框架,下面探 ... -
Struts 2请求处理流程 命令模式2
2012-10-16 16:20 1758将“请求”封装成命令对象。把行为请求者和行为实现者进行解耦。 ... -
Struts 2请求处理流程 命令模式
2012-10-16 16:15 2815Struts 2请求处理流程 2010-06 ... -
STRUTS2核心控制器:FilterDispatcher (写的真心清晰)
2012-10-16 16:07 37024STRUTS2核心控制 ... -
struts2源码阅读1
2012-10-16 11:09 1249Struts2源码阅读 ... -
struts2 文件上传
2012-08-12 16:20 15782、新建Action 第一种方式 packag ... -
Struts2实现的6位数字的验证码程序
2012-08-05 16:39 1220http://ipc.iteye.com/bl ... -
Struts2 异步跳转页面被js extjs jquery ajax 拦截(转)
2012-08-04 16:51 4936Struts2中使用getJSON方式进行 ... -
struts2 拦截器权限控制
2012-08-04 10:37 1670工程布局: 直 ... -
struts2学习的博客
2012-02-26 10:59 1244http://downpour.iteye.com/blog/ ... -
拦截器 参数不过去
2012-02-26 10:28 4582还是同样的问题,拦截器在以前学的时候,学的 ... -
struts 国际化乱码
2012-02-25 09:15 1718差不多半年没复习框架了,都在搞论文和打基础,什么算法和数 ... -
struts2国际化
2012-02-25 08:38 1480struts2国际化 在struts2中需要做国际化的有 ... -
struts2拦截器的实现
2012-02-25 08:39 1589如何使用struts2拦截 ... -
struts2连mysql乱码解决方法
2011-08-27 20:34 1518(2009-11-12 20:12:47) 转 ... -
struts2 jquery
2011-05-08 09:30 1650使用这个组合,感觉还是很方便灵活的。 1、将struts2的 ... -
struts2 <s:if> list map set 判断为空的问题
2011-04-25 13:18 8470<s:if test="#request.li ... -
struts2 标签 获取 request
2011-04-25 10:44 2363在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-spring-plugin-2.3.15.2.jar ; struts2-json-plugin-2.3.16.3.jarstruts2-spring-plugin-2.3.15.2.jar ; struts2-json-plugin-2.3.16.3.jar
struts2-json-plugin,Struts JSON插件
jquery和struts2结合使用的jar包
struts2-json-plugin-2.2.3.1能用的包
struts2整合json的插件struts2-json-plugin源码,不是jar包
赠送jar包:json-smart-2.3.jar; 赠送原API文档:json-smart-2.3-javadoc.jar; 赠送源代码:json-smart-2.3-sources.jar; 赠送Maven依赖信息文件:json-smart-2.3.pom; 包含翻译后的API文档:json-smart-2.3-...
赠送jar包:json-smart-2.3.jar; 赠送原API文档:json-smart-2.3-javadoc.jar; 赠送源代码:json-smart-2.3-sources.jar; 赠送Maven依赖信息文件:json-smart-2.3.pom; 包含翻译后的API文档:json-smart-2.3-...
包含struts2-core-2.5.10.1.jar,struts2-jfreechart-plugin-2.5.10.1.jar,struts2-json-plugin-2.5.10.1.jar,struts2-junit-plugin-2.5.10.1.jar,struts2-bean-validation-plugin-2.5.10.1.jar,struts2-cdi-...
struts2自带的json转换 倒入jar文件 struts.xml中 <package ......extends="json-default" <result type="json"/>
赠送jar包:json-smart-2.4.7.jar; 赠送原API文档:json-smart-2.4.7-javadoc.jar; 赠送源代码:json-smart-2.4.7-sources.jar; 赠送Maven依赖信息文件:json-smart-2.4.7.pom; 包含翻译后的API文档:json-smart...
struts2 2.3.16.3 版本配置json所需要的jar文件。有时候版本不一致也会配置失败。
struts插件,放入classpath中即用!
赠送jar包:jackson-jaxrs-json-provider-2.7.8.jar; 赠送原API文档:jackson-jaxrs-json-provider-2.7.8-javadoc.jar; 赠送源代码:jackson-jaxrs-json-provider-2.7.8-sources.jar; 赠送Maven依赖信息文件:...
采用jquery,配合struts2进行异步请求,json数据支持工具包,struts2-json-plugin-2.2.3
ajax结合Struts2要用到的jar包
struts2-json-plugin-2.3.24.jar
struts2-json-plugin-2.3.15.1 -Lee修复bug版.jarstruts2-json-plugin-2.3.15.1 -Lee修复bug版.jarstruts2-json-plugin-2.3.15.1 -Lee修复bug版.jarstruts2-json-plugin-2.3.15.1 -Lee修复bug版.jar
struts2-json-plugin-2.1.8.1.jar
struts2-json-plugin-2.1.8.jar