struts2的json插件详解 注解

本文详细介绍了如何在 Struts2 中使用 JSON 插件,包括所需依赖库及注解配置方法,并解释了如何通过不同参数控制 JSON 数据的序列化过程。

如果我们要在struts2中使用JSON的功能,需要引入struts2-json-plugin-2.3.4.1.jar,


如果使用注解的方式配置JSON,还需要引入

struts2-convention-plugin-2.3.4.1.jar

commons-io-2.0.1.jar

这两个包


使用注解的方式配置需要注意两点

1.包必须继承 @ParentPackage("json-default")

2.Result(type="json")类型为json,同时location这个属性不能配置,必须使用空,不然会报错。

 

---------------------------------------------------------------------------------------

几个常用参数的说明:


1.root参数:从返回结果中根据ognl表达式取出你需要输出的结果


JSON默认序列化Action中的所有属性,如果我们只想要个对象格式的json,我们需要传入一个


@Action(value="message",results={ @Result(type="json",params={"root","要输出的属性名称(可以使用ognl表达式操作根对象)"})})


这样我们就可以得到一个这样的结构

{
 message:"",
 list:[]
 map:{}
}

------------------------------------------------------------------------------------------


2.  excludeNullProperties 参数:表示是否去掉null值的属性,默认值是false,如果设置为true会自动将为null值属性过滤,

    只输出不为null值的属性。


@Action(value="message",results={ @Result(type="json",params={"excludeNullProperties","true"})})

 


------------------------------------------------------------------------------------------


3.  ignoreHierarchy 参数:表示是否忽略等级,也就是继承关系,比如:TestAction继承于BaseAction,那么TestAction中返回的json字符串默认是不会包含父类BaseAction的属性值,

    ignoreHierarchy值默认为true,设置为false后会将父类和子类的属性一起输出。

 

@Action(value="message",results={ @Result(type="json",params={"ignoreHierarchy","true"})})


------------------------------------------------------------------------------------------


4.  includeProperties 参数:输出结果中需要包含的属性值,这里正则表达式和属性名匹配,可以用“,”分割多个正则表达式。

 

@Result(name="json",type="json",params={"includeProperties","message,person\\.name,list\\[1\\]\\.age,map.*","prefix","true"})


要注意的是这里非正则表达式的符号,要进行转移,不然ognl表达式不会识别。


------------------------------------------------------------------------------------------


5.  excludeProperties 参数:输出结果需要排除的属性值,也支持正则表达式匹配属性名,可以用“,”分割多个正则表达式,同上。

 

-------------------------------------------------------------------------------------------


@JSON注解

1.默认情况下以get方法开头的都会序列化,如果不想序列化,在action中的方法要打上注解 @JSON(serialize=false)。

2.如果在属性get方法上面加 @JSON(name="newName"),则返回的json数据中key是指定的新名称。

3. @JSON(format ="yyyy-MM-dd'T'HH:mm:ss")设置用于格式化json数据中的日期。

4. @JSON(deserialize=true)设置是否反序列化该属性。

总结常用的注解如下:

 

Namespace:指定命名空间。

ParentPackage:指定父包。

Result:提供了Action结果的映射。(一个结果的映射)

Results:“Result”注解列表

ResultPath:指定结果页面的基路径。

Action:指定Action的访问URL。

Actions:“Action”注解列表。

ExceptionMapping:指定异常映射。(映射一个声明异常)

ExceptionMappings:一级声明异常的数组。

InterceptorRef:拦截器引用。

InterceptorRefs:拦截器引用组。


该文档【DeepSeek医疗损害责任鉴定辅助方案:基于医学知识图谱的诊疗规范性检查与过错参与度智能评估】共计 579 页,共50个大章节,文档支持目录章节跳转同时还支持阅读器左侧书签大纲显示和章节快速定位,文档内容完整、条理清晰。文档内所有文字、图表、目录等元素均显示正常,无任何异常情况,敬请您放心查阅与使用。文档仅供学习参考,请勿用作商业用途。文档前20个章节内容:【引言:医疗损害责任鉴定的技术痛点与DeepSeek解决方案概述、DeepSeek医疗损害责任鉴定辅助方案整体技术架构设计、医学知识图谱核心数据模型设计:实体与关系定义规范、医疗损害相关诊疗规范知识抽取规则制定与实现、医学术语标准化处理:从自然语言到知识图谱实体映射机制、DeepSeek医学知识图谱构建的数据源选取与预处理流程、诊疗知识图谱实体消歧算法在医疗场景中的应用实现、诊疗行为时间序列数据结构化存储方案设计、医学知识图谱推理规则引擎的核心逻辑开发、诊疗规范符合性检查规则库的构建与迭代机制、基于知识图谱的诊疗步骤完整性校验算法实现、医疗行为与规范条款匹配度计算模型设计、过错参与度评估指标体系的量化建模、多源异构医疗数据融合接入技术方案、电子病历文本信息抽取模型训练数据准备、数据标注:医疗损害责任相关实体与关系标注规范、数据标注质量控制流程与评估标准、基于BERT的医疗事件抽取模型训练方案、诊疗规范文本结构化处理模型训练过程、过错行为识别模型的训练数据增强策略】。更多精品资源请访问 https://blog.csdn.net/ashyyyy/article/details/146464041
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值