strusts2_json
引用别人的
Struts.xml
<package name="default" extends ="json-default" >
<action name="fieldManage_*" method="{1}" lass="fieldManageAction">
<result type="json">
<param name="includeProperties">totalCount,data.*</param>
</result>
<result name="operaFieldmanage" type="json">
<param name="includeProperties">success</param>
</result>
</action>
</package>
extends=”json-default”这边必须这样设置才能处理json。
1.<action name="test" class="com.TestAction" method="test">
<result type="json" /><!--将action的bean属性以json字符串返回浏览器-->
</action>
2.只要继承extends="json-default",json拦截器是默认配置上的,可以不配。result设置成json之后,容器会把
action的属性自动封装到一个json对象中(json拦截器来做),然后调用js的callback方法. 返回json数据
3.如果按照1中的配置。你会发现前台返回的json字符串,是把action中的所有属性全部转化为json字符串返回给浏览器了(甚至有时候返回不了
结果,也不报错,后台执行了,但前台执行不到callback function),但是我们有时候需要根据实际情况返回部分结果,如何对json的结果
进行定制输出呢?result提供了一些参数替你解决这个问题,一般情况下用的最多的就是includeProperties 参数和
excludeNullProperties参数。当然还有其他的方法,如给pojo的属性加json注解。
【有问题】4.includeProperties 参数:输出结果中需要包含的属性值,这里正则表达式和属性名匹配,可以用“,”分割填充多个正则表达式。这个参
数直接返回对象的json数据,前台不需要eval转换,<param name="root">result</param>
则不同,需要前台进行eval转换
5.excludeProperties 参数:输出结果需要剔除的属性值,也支持正则表达式匹配属性名,可以用“,”分割填充多个正则表达式,类同includeProperties
6.对一些属性的特殊处理可在action代码中去特殊的序列化,如:
[6.1]默认情况下以get方法开头的都会序列化,如果不想序列化,在action中的方法要打上注解
@JSON(serialize=false)
[6.2]如果在属性get方法上面加@JSON(name="newName"),则返回的json数据中名称是指定的新名称
[6.3]@JSON(format ="yyyy-MM-dd'T'HH:mm:ss")设置用于格式化输出、解析日期表单域的格式。
[6.4]@JSON(deserialize=true)设置是否反序列化该属性
strusts2_json的更多相关文章
随机推荐
- Python中字符串操作函数string.split('str1')和string.join(ls)
Python中的字符串操作函数split 和 join能够实现字符串和列表之间的简单转换, 使用 .split()可以将字符串中特定部分以多个字符的形式,存储成列表 def split(self, * ...
- PAT 1072. Gas Station
A gas station has to be built at such a location that the minimum distance between the station and a ...
- 2018ICPC南京
可能上一次秦皇岛拿了银,有了偶像包袱? 打的时候感觉状态不是很好. 第一题,让你每次将连续一段区间的石头都拿掉.. 然后让你做个博弈. 橘子一顿分析,认为k+1的倍数都是输. 这时,我们以及默认i+1 ...
- hdu 1598 暴力+并查集
#include<stdio.h> #include<stdlib.h> #define N 300 int pre[N]; int find(int u) { if(u!=p ...
- Mysql查询缓存研究
转载声明:本文为DBA+社群原创文章,转载必须连同本订阅号二维码全文转载,并注明作者名字及来源:DBA+社群(dbaplus). http://mp.weixin.qq.com/s?__biz=MzI ...
- POJ 2373
原本一道挺简单的DP题,思路有了,运用单调队列,但在写单调队列时写挫了... 这道题只需要计算偶数位置的即可,这是显而易见的,我有注意过这情况,写的时候却没在意...--! 加入队列的元素应该当前no ...
- 【cl】子查询应用场景
有推荐人/没有推荐人的 recommender_id is null / is not null 谁是推荐人=他的id是别人的recommender_id=某个人的recommender_id是他的i ...
- 关系型数据库与HBase的数据储存方式差别
现在Bigtable型(列族)数据库应用越来越广,功能也非常强大. 可是非常多人还是把它当做关系型数据库在使用,用原来关系型数据库的思维建表.存储.查询. 本文以hbase举例讲述数据模式的变化. 传 ...
- php中一个经典的!==的用法
php中一个经典的!==的用法 <?php $str = 'Every time you bleed for reaching greatness.'; $cha = 'E'; if(strpo ...
- JS中的数据类型及判断数据类型的方法
简单类型(基本类型): number,string,boolean,null,undefined 复杂类型(引用类型):object typeof 只能判断基本数据类型 instanceof 能够判断 ...