1.引入包:struts2-json-plugin-2.1.8.1.jar json-lib-2.1.jar commons-collections-3.2.1.jar commons-beanutils-1.8.2.jar commons-lang-2.4.jar
ezmorph-1.0.6.jar,其他的包略,这几个包是返回json形式的数据必须的
2.<package name="default" extends="json-default">
3.<action name="test" class="com.TestAction" method="test">
<interceptor-ref name="json" /><!--处理以JSON文本提交的请求-->
<result type="json" /><!--将action的bean属性以json字符串返回浏览器-->
</action>
4.只要继承extends="json-default",json拦截器是默认配置上的,可以不配。result设置成json之后,容器会把action的属性自动封装到一个json对象中(json拦截器来做),然后调用js的callback方法. 返回json数据
5.如果按照3中的配置。你会发现前台返回的json字符串,是把action中的所有属性全部转化为json字符串返回给浏览器了(甚至有时候返回不了结果,也不报错,后台执行了,但前台执行不到callback function),但是我们有时候需要根据实际情况返回部分结果,如何对json的结果进行定制输出呢?result提供了一些参数替你解决这个问题,一般情况下用的最多的就是includeProperties 参数和excludeNullProperties参数。当然还有其他的方法,如给pojo的属性加json注解。
6.includeProperties 参数:输出结果中需要包含的属性值,这里正则表达式和属性名匹配,可以用“,”分割填充多个正则表达式。这个参数直接返回对象的json数据,前台不需要eval转换,<param name="root">result</param>则不同,需要前台进行eval转换
如:输出person的所有属性
<result type="json">
<param name="includeProperties">person.*, person\.name</param>
</result>
7.excludeProperties 参数:输出结果需要剔除的属性值,也支持正则表达式匹配属性名,可以用“,”分割填充多个正则表达式,类同includeProperties
8.输出一个JSON List列表
<action name="list" class="testAction" method="list">
<result name="success" type="json">
<param name="includeProperties">
list\[\d+\]\.Id,list\[\d+\]\.user\.userName
</param>
</result>
</action>
其中list是action中的一个List类型的属性
list\[\d+\]\.Id表示,list中存储的对象0..end的Id属性(list中存储的对象必须有Id属性)。
list\[\d+\]\.user\.userName就表示list中的对象中的user对象的userName属性
9.为什么要用includeProperties或者excludeProperties 参数:
主要是为了过滤掉接口,pojo的set、list、其他对象等不需要的数据防止循环取其他对象或找不到。如果不配置,默认是处理action中的所有属性,如果action中有接口注入,json拦截器可能找不到返回不了结果,还有如果action中有一个对象,这个对象与好多对象都有关联,json拦截器会将相关联的所有对象的属性全部转换成json格式,如果其他对象有list、set,其返回结果...有可能是死循环,无法返回
10.总结:
action中避免使用get开头的action方法,去掉action中的接口的get方法
为json类型的result配置includeProperties, excludeProperties等参数.
分享到:
相关推荐
在ZTree的异步加载中,通常会使用Struts2来接收前端请求并返回JSON数据,Spring管理业务逻辑,Hibernate处理数据库交互。 异步加载是ZTree的一个核心特性,它允许用户在需要时动态地获取数据,提高页面加载速度和...
Struts2 JSON插件会将这个List转换为JSON字符串,发送回浏览器。客户端的JavaScript代码接收到JSON数据后,可以动态地更新页面,显示搜索结果。 总的来说,Struts、JSON和AJAX的结合使用能够创建高性能、响应式的...
在SSH(Spring、Struts2、Hibernate)框架中,开发Web应用时经常需要与前端进行数据交互。EasyUI是一款基于jQuery的UI库,用于构建现代、互动的用户界面。在处理数据展示时,我们可能需要将后端Java对象转换为JSON...
4. **控制器处理**:在Spring MVC或Struts2的控制器中,创建返回JSON的处理方法。例如,在Spring MVC中: ```java @RequestMapping(value = "/getUser", produces = "application/json") public @ResponseBody User...
在这个"jquery插件之flexigrid学习实例"中,我们将深入探讨如何在Struts2框架下结合JSON进行数据交互,以实现一个完整的应用。 首先,我们需要了解Flexigrid的基本使用方法。在HTML页面中,我们需要引入jQuery库和...
SSH整合是指将Spring、Struts2和Hibernate这三个Java EE开发中的主流框架进行集成,以便构建高效、可维护的Web应用程序。在这个实例中,SSH整合被用于实现一个数据列表的显示功能,利用了Jquery框架的Flexigrid插件...
弃用了struts,用spring mvc框架做了几个项目,感觉都不错,而且使用了注解方式,可以省掉一大堆配置文件。本文主要介绍使用注解方式配置的spring mvc,之前写的spring3.0 mvc和rest小例子没有介绍到数据层的内容,...
- 集合框架(List、Set、Map) - 多线程编程 - IO流 - 泛型 - Lambda表达式 **2. Oracle数据库** 作为常见的关系型数据库,掌握Oracle的SQL查询、事务管理、存储过程、索引、表空间管理等内容是必备技能。 **3. ...
2. **全程一体化办公系统(OA)**:基于Windows 2003、JDK 1.6、Apache Tomcat 6.0、MySQL和Eclipse开发,采用Spring3、Hibernate4、Struts2.3、jQuery、dtree、jquery-easyui和javamail。系统包含多个管理模块,利用...
\contentsline {chapter}{Contents}{2}{section*.1} {1}Java基础}{17}{chapter.1} {1.1}基本语法}{17}{section.1.1} {1.2}数字表达方式}{17}{section.1.2} {1.3}补码}{19}{section.1.3} {1.3.1}总结}{23}{...
### 使用SSH(Spring、Hibernate、Struts2)框架 如果你的项目使用SSH框架,可以将jqGrid与这些框架集成,实现更高级的功能,如CRUD操作。 1. **配置Action**:在Struts2 Action中处理请求,与后端服务交互。 2. *...
SSH整合:SSH是Struts2、Spring和Hibernate三个框架整合的统称。 SpringMVC整合:SpringMVC与Spring和Hibernate的整合。 Hibernate中get和load的区别:get是立即加载,load是延迟加载。 Hibernate、Ibatis、Jdbc...
- **后端框架**:Hibernate3、Struts2、Spring2 - **前端模板引擎**:Freemarker - **前端库**:jQuery 和 JSON - **数据库**:MySQL(同时兼容Oracle、DB2、SQL Server等) - **应用服务器**:Tomcat(兼容Weblogic...
- **返回JSON数据**:学习如何将数据转换为JSON格式并返回给前端。 ##### 3.6 Hibernate框架 - **ORM框架简介**:了解对象关系映射(Object-Relational Mapping, ORM)的基本概念。 - **Hibernate框架的基本使用**...
4. **SSH整合**:Struts2、Spring和Hibernate的联合使用,实现高效企业级开发。 5. **jQuery**和**Bootstrap**:提升前端交互体验,创建响应式布局。 6. **MyBatis框架**:理解SqlMapConfig,输入映射,动态SQL,...
SSH(Struts2、Spring、Hibernate)整合应用能够提升开发效率。同时,参与团队合作项目,了解工程开发的全流程,包括需求分析、设计、编码、测试、部署和维护,锻炼团队协作和沟通能力。 通过上述全面的课程学习和...
7. **SSH/SSI实时预览**:Struts2,Spring,Hibernate整合。 8. **数据库分页显示**:Criteria API,HQL,SQL。 9. **Spring对象事件**:ApplicationEvent,ApplicationListener。 10. **事务管理**:Spring的@...
Java中常见的开源框架有Spring、Struts、Hibernate(SSH)。SSH中的Spring提供DI(依赖注入)和AOP(面向切面编程),Struts处理HTTP请求和视图管理,Hibernate处理ORM(对象关系映射)。Spring-MVC是Spring框架的...
3. **SSH (Spring, Struts, Hibernate)**: - **Spring**:依赖注入、AOP(面向切面编程)、事务管理,以及Spring Boot和Spring Cloud的应用。 - **Struts**:MVC框架的核心概念,Action、ActionForm、Interceptor...