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. 所谓异步,就是提交一个请求不必等 ...
随机推荐
- Install MongoDB on Windows
Overview Use this tutorial to install MongoDB on a Windows systems. PLATFORM SUPPORT Starting in ver ...
- How to create XML validator(验证器;验证程序) from XML schema
In order to check XML data for validity we have to prepare its schema XSD-file. This file will be lo ...
- 单点登录SSO的实现原理
单点登录SSO(Single Sign On)说得简单点就是在一个多系统共存的环境下,用户在一处登录后,就不用在其他系统中登录,也就是用户的一次登录能得到其他所有系统的信任.单点登录在大型网站里使用得 ...
- easyui在当前tab中直接加载url
var tab = $('#mainTabs').tabs('getSelected'); // get selected panel $('#mainTabs').tabs('update', { ...
- Win7 下安装RabbitMQ
RabbitMQ依赖erlang,所以先安装erlang,然后再安装RabbitMQ; 下载RabbitMQ,下载地址: rabbitmq-server-3.5.6.exe和erlang,下载地址:o ...
- 安装MYSQL 出现Error 1045 access denied 的解决方法
操作系统:WINDOWS10 系统 数据库版本:mysql 5.x 提示:access denied for user 'root'@'localhost' using password yes/no ...
- JavaScript中七种函数调用方式及对应 this 的含义
this 在 JavaScript 开发中占有相当重要的地位,不过很多人对this这个东西都感觉到琢磨不透.要真正理解JavaScript的函数机制,就非常有必要搞清楚this到底是怎么回事. 函数调 ...
- 纯IPv6环境App适配的坑
来源:伯乐在线专栏作者 - MrPeak 链接:http://ios.jobbole.com/86580/ 苹果从2016年6月1号开始,强制所有app必须支持纯IPv6的网络环境.这项举措将对IPv ...
- XC文件管理器(Android应用)
XC文件管理器,是基于Android4.4开发的一个方便易用的文件管理器,具有文件的目录管理和文件的管理,主要包括文件的新建.删除.重命名.复制,移动剪切以及文件详情查看等文件和目录的功能,同时支持文 ...
- docker build lnmp(未完成。。。)
docker pull centos # 拉取镜像到本地 docker run -i -t -p 8000:80 --name=centosDev centos cat /etc/redhat-rel ...