java互相调用死循环_java相关:详解Struts2中json 相互引用死循环解决办法

java相关:详解Struts2中json 相互引用死循环解决办法

发布于 2020-2-27|

复制链接

本篇文章主要介绍详解Struts2中json 相互引用死循环解决办法,具有一定的参考价值,有兴趣的可以了解一下。

方法1 :利用Struts 2的支持的可配置结果,可以达到过滤器的效果。Action的处理结果配置支持正则表达式。但是如果返回的对象是一个数组格式的Json数据。比如peson Bean中有对象persion1…person9,而我只要person1的json数据, 则可以用如下的正则表达式。

```java

person/[/d+/]/.person1

>

```

excludeProperties拦截器的用法与此类同,如果拦截的仅仅是一个对象,如果拦截掉person Bean的整个对象。

```java

person

>

```

方法2:需要注意的是,如果用JSON插件把返回结果定为JSON。而JSON的原理是在ACTION中的get方法都会序列化所以前面是get的方法只要没指定不序列化,都会执行。 如果该方法一定要命名为get*(比如实现了什么接口), 那么可以在该方法的前面加注解声明该方法不做序列化。

注解的方式为:@JSON(serialize=false)除此之外,JSON注释还支持如下几个域:

serialize:设置是否序列化该属性

deserialize:设置是否反序列化该属性。

format:设置用于格式化输出、解析日期表单域的格式。例如”yyyy-MM-dd'T'HH:mm:ss”。

```java

//使用注释语法来改变该属性序列化后的属性名

@JSON(name="newName")

public String getName()

{

return this.name;

}

```

需要引入 import org.apache.struts2.json.annotations.JSON;

```java

@JSON(serialize=false)

public User getUser() {

return this.User;

}

@JSON(format="yyyy-MM-dd")

public Date getStartDate() {

return this.startDate;

}

```

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值