struts-json
Struts2序列化的属性,该属性在action中必须有对应的getter方法
如果action的属性很多,我们想要从Action返回到调用页面的数据。这个时候配置includeProperties或者 excludeProperties拦截器即可。而这2个拦截器的定义都在struts2的json-default包内,所以要使用该拦截器的包都要继承自json-default。
|
01
02
03
04
05
06
07
08
09
10
11
|
<struts> <constant value="spring" name="struts.objectFactory" /> <include file="struts-admin.xml"></include> <package name="default" extends="json-default"> <action class="com.person.PersonAction" name="person" method="view"> <result type="json"> <param name="includeProperties">person\.name,persoon\.age,person\.gender </param> </result> </action> </package></struts> |
经过测试,下面的设置也是可以的,就是在includeProperties里面直接写你所在Action的属性
|
01
02
03
04
05
06
07
08
09
10
11
|
<struts> <constant value="spring" name="struts.objectFactory" /> <include file="struts-admin.xml"></include> <package name="default" extends="json-default"> <action class="com.person.PersonAction" name="person" method="view"> <result type="json"> <param name="includeProperties">name,age,gender </param> </result> </action> </package></struts> |
利用Struts 2的支持的可配置结果,可以达到过滤器的效果。Action的处理结果配置支持正则表达式。但是如果返回的对象是一个数组格式的Json数据。比如 peson Bean中有对象persion1…person9,而我只要JSON插件,则可以用如下的正则表达式。
|
01
02
03
04
05
06
07
08
09
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
|
<struts> <constant value="spring" name="struts.objectFactory" /> <include file="struts-admin.xml"></include> <package name="default" extends="json-default"> <action class="com.person.PersonAction" name="person" method="view"> <result type="json"> <param name="includeProperties">person\.name,persoon\.age,person\.gender </param> </result> </action> </package></struts><!--利用Struts 2的支持的可配置结果,可以达到过滤器的效果。Action的处理结果配置支持正则表达式。 但是如果返回的对象是一个数组格式的Json数据。比如peson Bean中有对象persion1...person9,而我只要person1的json数据, 则可以用如下的正则表达式。 --><struts> <constant value="spring" name="struts.objectFactory" /> <include file="struts-admin.xml"></include> <package name="default" extends="json-default"> <action class="com.person.PersonAction" name="person" method="view"> <result type="json"> <param name="includeProperties">person\[\d+\]\.person1 </param> </result> </action> </package></struts><!--excludeProperties拦截器的用法与此类同,如果拦截的仅仅是一个对象,如果拦截掉person Bean的整个对象。 --><struts> <constant value="spring" name="struts.objectFactory" /> <include file="struts-admin.xml"></include> <package name="default" extends="json-default"> <action class="com.person.PersonAction" name="person" method="view"> <result type="json"> <param name="excludeProperties">person </param> </result> </action> </package></struts> |
传递List或者对象是,后面要加上 .* 代表全部的意思。
<param name="includeProperties">topicList.*</param>
需要注意的是,如果用JSON插件把返回结果定为JSON。而JSON的原理是在ACTION中的get方法都会序列化,所以前面是get的方法只要没指定不序列化,都会执行,那么可以在该方法的前面加注解声明该方法不做序列化。
|
1
2
3
4
5
6
7
8
9
|
@JSON(serialize = false)public User getUser() { return this.User;}@JSON(format = "yyyy-MM-dd")public Date getStartDate() { return this.startDate;}
|
struts-json的更多相关文章
- struts json登录
1.struts.xml <?xml version="1.0" encoding="UTF-8" ?> <!DOCTYPE struts P ...
- 【转】Struts2中json插件的使用
配置注意点: 在原有Struts2框架jar包的引入下,需要额外多加一个Json的插件包(struts2-json-plugin-2.3.7.jar) 在struts.xml配置文件中,包需要继承js ...
- 关于Strut2内置Json插件的使用
配置注意点: 在原有Struts2框架jar包的引入下,需要额外多加一个Json的插件包(struts2-json-plugin-2.3.7.jar) 在struts.xml配置文件中,包需要继承js ...
- struts2整合json要注意的问题
昨天struts2整合json,一直出错: There is no Action mapped for namespace / and action name ... HTTP Status 404 ...
- struts2对于处理JSON的配置
由于最近几年日益流行前后端分离模式,JSON作为数据载体也变得不可或缺.几乎所有的web框架都需要支持JSON,下面咱就一起了解下struts2是如何支持JSON的. 对于JSON的发送 这里有两种方 ...
- JSON 的含义?
JSON 的全称是 JavaScript Object Notation,是一种轻量级的数据交换格式.JS ON 与 XML 具有相同的特性,例如易于人编写和阅读,易于机器生成和解析.但是 JSON ...
- JSP标签库
step1: 定义一个标签处理类:改类必须实现SimpleTag接口,在实际中是拓展它的子类SimpleTagSupport.复写doTag方法 public class MyTag extends ...
- 当struts遇上json,没爱了
用过struts的人,或者用过spring MVC的人,都知道domain model接受参数是多么的方便,而且又有依赖注入,简直是自动拿参数,再自动帮你转成java bean,但是也有不足的地方 说 ...
- Hibernate+struts+JqueryAjax+jSON实现无刷新三级联动
看网上JqueryAjax三级联动的例子讲不是很全,代码也给的不是很全,给初学者带来一定的难度.小弟自己写了一个,可能有些地方不是很好,希望大家能够提出建议. 用的是Hibernate+struts2 ...
- Struts+Spring+Hibernate项目整合AJAX+JSON
1.什么是AJAX AJAX是 "Asynchronous JavaScript and XML" 的简称,即异步的JavaScript和XML. 所谓异步,就是提交一个请求不必等 ...
随机推荐
- Bzoj 3171: [Tjoi2013]循环格 费用流
3171: [Tjoi2013]循环格 Time Limit: 1 Sec Memory Limit: 128 MBSubmit: 741 Solved: 463[Submit][Status][ ...
- HW4.30
import java.util.Scanner; public class Solution { public static void main(String[] args) { Scanner i ...
- install Active Directory域控制器
设置Active Directory域控制器 正如我们在网络与系统配置专题文章中所提到的那样,我们已将两部服务器设置为对应于内部域“intdomain.com”的Active Directory域控制 ...
- 在Jersey中如何处理泛型集合
Jersey是一个标准的Restful Web service框架,可以方便的实现Restful的Server端和客户端. 本文主要介绍使用Jersey客户端时如何将Json格式的数组转换成java的 ...
- linux下avr单片机开发:中断服务程序
不管是什么单片机程序,中断总是非常重要的一部分 ,linux 下的avr开发,主要是依靠avr-gcc,以及avr-libc,它们对中断程序的格式要求,与window下的icc-avr以及win-av ...
- Android——C语言、JNI与低层调用
JNI java native interface c的基本数据类型 int:32位,能表示的数字是2的32次方个 最高位用来表示符号位,那么还剩下31位可以表示数值,所以能表示的数字就是2的31次方 ...
- noip 2015 提高组
算是填个坑吧 , QwQ Day 1 第一题很水,就是考代码能力 ,直接贴代码. #include <iostream> #include <cstdlib> #include ...
- tomcat install on Linux
1)下载apache-tomcat-6.0.10.tar.gz 2)#tar -zxvf apache-tomcat-6.0.10.tar.gz ://解压 3)#cp -R apache-tomca ...
- 博客搬家到 http://fresky.github.io/ - Visual Studio的插件Pdbproj可以把pdb转换成C++项目
博客搬到了Dawei XU,请各位看官挪步.最新的一篇是:Visual Studio的插件Pdbproj可以把pdb转换成C++项目.
- android-配置虚拟机Virtual device
Android的应用程序是基于virtual device运行的,在运行一个android的应用程序之前先要配置要virtual device