struts2注解返回json
版权声明:本文为博主原创文章,未经博主允许不得转载。 https://blog.csdn.net/Geek_Alex/article/details/78845532
最近项目中需要使用struts2的注解方式实现Json数据的返回
讲道理,网上一大堆解决方案,试了半天没有一个完全解决我的问题,因此集百家之长写了这篇博客,希望对大家有用。
1.引入struts2-json-plugin和struts2-convention-plugin的jar包
<dependency>
<groupId>org.apache.struts</groupId>
<artifactId>struts2-json-plugin</artifactId>
<version>${struts2.version}</version>
</dependency>
<dependency>
<groupId>org.apache.struts</groupId>
<artifactId>struts2-convention-plugin</artifactId>
<version>${struts2.version}</version>
</dependency>
2.Action类注解
1.使用注解@ParentPackage("json-default")
注解Action类
2.设置result的type为json
@Result(name = "error", type = "json")
3 @JSON注解
a.默认情况下以get方法会被序列化,
b.可使用注解 @JSON(serialize=false)关闭某个get方法的序列化。
c.如果在属性get方法上面加 @JSON(name=”newName”),则返回的json数据中key是指定的新名称。
d. @JSON(format ="yyyy-MM-dd'T'HH:mm:ss”)设置用于格式化json数据中的日期。
e. @JSON(deserialize=true)设置是否反序列化该属性。
4.param参数设置
4.1.root参数:返回单个数据
使用方法::
@Action(value="xxxx",results={ @Result(name=“xxx”type="json",params={"root","要返回的数据名称"})})
4.2. excludeNullProperties 参数:过滤属性值为null的数据
使用方法:: @Action(value="xxxx",results={ @Result(name=“xxx”type="json",params={“excludeNullProperties","true"})})
4.3. ignoreHierarchy 参数:表示是否忽略等级。ignoreHierarchy值默认为true,设置为false后会将父类和子类的属性一起输出。
使用方法:: @Action(value="xxxx",results={ @Result(name=“xxx”type="json",params={"ignoreHierarchy","true"})})
4.4. includeProperties 参数:输出结果中需要包含的属性值,这里正则表达式和属性名匹配,可以用“,”分割多个正则表达式。
使用方法:: @Action(value="xxxx",results={ @Result(name=“xxx”type="json",params={"includeProperties","msg,user\\.username,list\\[1\\]\\.password,map.*","prefix","true"})})
4.5. excludeProperties 参数:输出结果需要排除的属性值,用法与includeProperties相同。
使用方法:@Action(value="xxxx",results={ @Result(name=“xxx”type="json",
params={"excludeProperties","msg,user\\.username,list\\[1\\]\\.password,map.*","prefix","true")})
struts2注解返回json的更多相关文章
- Struts2 Convention插件的使用(4)使用@Action注解返回json数据
package com.hyy.action; import java.util.HashMap; import java.util.Map; import org.apache.struts2.co ...
- Extjs 4.1 struts2.3 返回json 初试
之前曾经使用过3.x版本的extjs,当时可以结合struts实现各种基本的增删查改.但是4.1版本中增加了一些属性,出现了一些新的使用方法,导致错误不断,有的时候调用到相应的action却返回不了值 ...
- 解决spring-mvc @responseBody注解返回json 乱码问题
在使用spring-mvc的mvc的时候既享受它带来的便捷,又头痛它的一些问题,比如经典的中文乱码问题.现在是用json作为客户端和服务端 的数据交换格式貌似很流行,但是在springmvc中有时候会 ...
- 解决springmvc使用ResponseBody注解返回json中文乱码问题
spring版本:4.2.5.RELEASE 查看“org.springframework.http.converter.StringHttpMessageConverter”源码,中有一段说明: B ...
- Struts2自定义返回Json类型result
本来Struts2有自己的json类型的返回结果,并提供了插件,但是它有一个问题,那就是它会将所有序列化的字段都返回,如果想要制定返回Action的某一个属性,则需要在配置result时,配置参数(这 ...
- 【原】:关于使用springmvc的responseBody注解返回json的一些总结
配置不正确可能会出现406错误 1:首先需要导入三个jar包: 2:需要在springmvc的配置文件文件中添加转换器并开启注解驱动: 3:controller:这里返回object也是可以的; 4: ...
- struts2后台返回json到jsp页面
1.在action定义一个全局变量如: private Map<String, Object> dataMap; 2.控制层方法 说明:主要的目的是把我们定义的Map转为Json对象,然后 ...
- SpringMVC 利用@ResponseBody注解返回Json时,出现406 not acceptable 错误的解决方法。
1 在RequestMapping中加入produces属性如: @RequestMap(value="/path",produces="application/json ...
- struts2注释返回json数据
随机推荐
- oracle中hint 详解
Hint概述 基于代价的优化器是很聪明的,在绝大多数情况下它会选择正确的优化器,减轻了DBA的负担.但有时它也聪明反被聪明误,选择了很差的执行计划,使某个语句的执行变得奇慢无比. 此时就需要DBA进行 ...
- Codeforces Round #552:G. Minimum Possible LCM
官方题解是时间复杂度为O(nd)的.这里给出一个简单实现但是时间复杂度为O(NlogN) (N=1e7) 因为 a*b/gcd(a,b)=lcm(a,b) 所以我们可以枚举每一个因子,然后找到存在这个 ...
- thrift 的required、optional探究
原因 经常使用thrift来编写rpc通信,但是对下面两个问题还是有些疑惑 thrift 的required.optional和不写有什么区别 optional不设置isset的话被传输后值? 实验 ...
- PHP 的 new static 和 new self
下面我们举个例子: class Father { public static function getSelf() { return new self(); } public static funct ...
- ansible-继续普通用户权限运行
ansible 远程以普通用户执行命令 1. ansible 10.0.0.1 -m raw -a "date" -u www 2.在ansible的主机配置文件中指定ssh_ ...
- Collections 工具类常见方法
Collections 工具类常用方法: 排序 查找,替换操作 同步控制(不推荐,需要线程安全的集合类型时请考虑使用 JUC 包下的并发集合) 排序操作 void reverse(List list) ...
- 【基础】Pipeline
1. 参考的优秀文章 Request/Response protocols and RTT 2. 来源 原来,系统中一个树结构的数据来源是Redis,由于数据增多.业务复杂,查询速度并不快.究其原因, ...
- 「NOI2016」循环之美(小性质+min_25筛)
传送门. 题解 感觉这题最难的是第一个结论. x/y首先要互质,然后如果在10进制是纯循环小数,不难想到y不是2.5的倍数就好了. 因为十进制下除以2和5是除得尽的. 必然会多出来的什么东西. 如果是 ...
- Android逆向之smali语法宝典
0x01.前言 Android采用的是java语言进行开发,但是Android系统有自己的虚拟机Dalvik,代码编译最终不是采用的java的class,而是使用的smali.我们反编译得到的代码,j ...
- HTML a标签文字颜色
1.css代码: a{color:#00F} a:hover{color:#f00}/* 鼠标经过悬停字体颜色 */ /* css 注释说明:以上代码为设置HTML中超链接统一字体颜色 */ .div ...