Strust2的json插件

本文介绍如何在Struts2框架中使用JSON插件进行数据交换。详细讲解了配置方法及如何定制序列化结果,包括如何指定序列化属性、排除特定属性等高级技巧。

最近在研究前端的交互部分,涉及到Struts2中使用json插件,总结下近日来看的一些材料和一些理解。以下这段摘自网上:

Json是一种轻量级的数据交换格式,JSon插件提供了一种名为json的ActionResultType 。一旦为Action指定了该结果处理类型,JSON插件就会自动将Action里的数据序列化成JSON格式的数据,并返回给客户端物理视图的JavaScript。简单的说,JSON插件允许我们JavaScript中异步的调用Action,而且Action不需要指定视图来显示Action的信息显示。而是由JSON插件来负责具体将Action里面具体的信息返回给调用页面。

其中使用方法中需要注意的几点:

1.要使用json插件就要在strust配置文件中的包继承关系改成json-default,如:

?
1
<package name="json" namespace="/json" extends="json-default">

2.选择序列化的结果可在strust中配置,可选择配置示例如下:

?
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
<!-- 序列化所有以get开头的方法 -->  
<result type="json" name="user"></result>    
  
<!-- 只序列化包含user.id属性 -->
<result type="json" name="user">
    <param name="includeProperties">user/.id</param>
</result>    
  
<!-- 不序列化user对象的任何属性 -->
<result type="json" name="list">
    <param name="excludeProperties">user</param>
</result>    
  
<!-- 只序列化根对象中的user -->
<result type="json">
    <param name="root">user</param>
</result>     
  
<!-- 不序列化父类中的属性对象-->
<result type="json">        
    <param name="ignoreHierarchy">false</param>
</result>

3.对一些属性的特殊处理可在action代码中去特殊的序列化,如:

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

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


[3.3]@JSON(format ="yyyy-MM-dd'T'HH:mm:ss")设置用于格式化输出、解析日期表单域的格式。

[3.4]@JSON(deserialize=true)设置是否反序列化该属性

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值