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")})

 
 
上一篇:JavaScript:到底什么是ES6、ES8、ES 2017、ECMAScript?


下一篇:Jenkins持续集成案例之-运维部署方式