全网整合营销服务商

电脑端+手机端+微信端=数据同步管理

免费咨询热线:400-708-3566

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

方法1 :利用Struts 2的支持的可配置结果,可以达到过滤器的效果。Action的处理结果配置支持正则表达式。

但是如果返回的对象是一个数组格式的Json数据。比如peson Bean中有对象persion1…person9,而我只要person1的json数据, 则可以用如下的正则表达式。

<struts>
  <constant name="struts.objectFactory" value="spring"/>  
  <include file="struts-admin.xml"></include>
  <package name="default" extends="json-default">
    <action name="person" class="com.person.PersonAction" method="view">
    <result type="json">
      <param name="includeProperties">     
      person/[/d+/]/.person1
      </param>>     
    </result>
    </action>
  </package>   
</struts>

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

<struts>
  <constant name="struts.objectFactory" value="spring"/>  
  <include file="struts-admin.xml"></include>
  <package name="default" extends="json-default">
    <action name="person" class="com.person.PersonAction" method="view">
    <result type="json">
      <param name="excludeProperties">     
      person
      </param>>     
    </result>
    </action>
  </package>   
</struts>

方法2:需要注意的是,如果用JSON插件把返回结果定为JSON。而JSON的原理是在ACTION中的get方法都会序列化

所以前面是get的方法只要没指定不序列化,都会执行。 如果该方法一定要命名为get*(比如实现了什么接口), 那么可以在该方法的前面加注解声明该方法不做序列化。

注解的方式为:@JSON(serialize=false)

除此之外,JSON注释还支持如下几个域:

  •   serialize:设置是否序列化该属性
  •   deserialize:设置是否反序列化该属性。
  •   format:设置用于格式化输出、解析日期表单域的格式。例如”yyyy-MM-dd'T'HH:mm:ss”。
//使用注释语法来改变该属性序列化后的属性名  

@JSON(name="newName")
 public String getName()
 {
  return this.name;
 }

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

@JSON(serialize=false)
public User getUser() {
  return this.User;
}

@JSON(format="yyyy-MM-dd")
public Date getStartDate() {
  return this.startDate;
}

以上就是本文的全部内容,希望对大家的学习有所帮助,也希望大家多多支持。


# struts2  # json  # 循环引用  # struts返回json数据  # js数组循环遍历数组内所有元素的方法  # JS数组的遍历方式for循环与for...in  # js 数组的for循环到底应该怎么写?  # javaScript如何跳出多重循环break、continue  # js和jquery中循环的退出和继续下一个循环  # JavaScript中循环遍历Array与Map的方法小结  # js for终止循环 跳出多层循环  # 如何检测JavaScript中的死循环示例详解  # 序列化  # 是一个  # 的是  # 几个  # 是在  # 中有  # 而我  # 与此  # 正则表达式  # 不做  # 则可  # 表单  # 命名为  # 可以达到  # 需要注意  # 大家多多  # 实现了  # 拦截器  # method  # default 


相关文章: 焦点电影公司作品,电影焦点结局是什么?  php json中文编码为null的解决办法  如何通过wdcp面板快速创建网站?  如何设计高效校园网站?  临沂网站制作企业,临沂第三中学官方网站?  如何通过西部建站助手安装IIS服务器?  如何批量查询域名的建站时间记录?  合肥做个网站多少钱,合肥本地有没有比较靠谱的交友平台?  建站主机服务器选型指南与性能优化方案解析  网站设计制作书签怎么做,怎样将网页添加到书签/主页书签/桌面?  ,交易猫的商品怎么发布到网站上去?  建站ABC备案流程中有哪些关键注意事项?  网站制作中优化长尾关键字挖掘的技巧,建一个视频网站需要多少钱?  制作国外网站的软件,国外有哪些比较优质的网站推荐?  如何在企业微信快速生成手机电脑官网?  建站主机系统SEO优化与智能配置核心关键词操作指南  建站之星如何取消后台验证码生成?  如何在万网主机上快速搭建网站?  如何在景安云服务器上绑定域名并配置虚拟主机?  广州网站制作公司哪家好一点,广州欧莱雅百库网络科技有限公司官网?  如何选择适合PHP云建站的开源框架?  如何在Windows环境下新建FTP站点并设置权限?  个人摄影网站制作流程,摄影爱好者都去什么网站?  成都网站制作价格表,现在成都广电的单独网络宽带有多少的,资费是什么情况呢?  如何使用Golang table-driven基准测试_多组数据测量函数效率  一键网站制作软件,义乌购一件代发流程?  免费的流程图制作网站有哪些,2025年教师初级职称申报网上流程?  海南网站制作公司有哪些,海口网是哪家的?  定制建站价位费用解析与套餐推荐全攻略  模具网站制作流程,如何找模具客户?  建站168自助建站系统:快速模板定制与SEO优化指南  宁波免费建站如何选择可靠模板与平台?  建站之星如何一键生成手机站?  如何在Tomcat中配置并部署网站项目?  如何在宝塔面板中创建新站点?  建站主机默认首页配置指南:核心功能与访问路径优化  建站主机服务器选购指南:轻量应用与VPS配置解析  C#怎么创建控制台应用 C# Console App项目创建方法  建站之星如何保障用户数据免受黑客入侵?  建站VPS配置与SEO优化指南:关键词排名提升策略  已有域名和空间如何搭建网站?  网站网页制作电话怎么打,怎样安装和使用钉钉软件免费打电话?  如何彻底卸载建站之星软件?  常州自助建站:操作简便模板丰富,企业个人快速搭建网站  已有域名建站全流程解析:网站搭建步骤与建站工具选择  大型企业网站制作流程,做网站需要注册公司吗?  车管所网站制作流程,交警当场开简易程序处罚决定书,在交警网站查询不到怎么办?  导航网站建站方案与优化指南:一站式高效搭建技巧解析  建站OpenVZ教程与优化策略:配置指南与性能提升  沈阳个人网站制作公司,哪个网站能考到沈阳事业编招聘的信息? 

您的项目需求

*请认真填写需求信息,我们会在24小时内与您取得联系。