引用别人的

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的更多相关文章

随机推荐

  1. [luogu2474 SCOI2008]天平(floyd差分约束)

    传送门 Solution 由于重量只有三种情况,那么想到用差分约束. 由于范围比较小,想到可以floyed求差分约束,暴力求天平另一边 Code #include <cstdio> #in ...

  2. Deepin & ROMS 安装详细流程

    按照这个过程,完美安装,当然并不能排除会出现其他的问题.如果遇到了,那就老老实实上网搜吧.

  3. tornado服务器运行django应用

    在jumpserver项目中看到的 def main(): from django.core.wsgi import get_wsgi_application import tornado.wsgi ...

  4. 继续聊WPF——进度条

    ProgressBar控件与传统WinForm使用方法完全一样,我们只需关注: Minimum——最小值,默认为0: Maximum——最大值,默认为100. Value——当前值.   关键是它的控 ...

  5. phpcms_完整版

    {pc:content action="category" catid="0" num="6" siteid="$siteid&q ...

  6. 认识一下.net的架构设计

    首先我们先逐步的了解一下.net都包含什么? 从层次结构上来看,公共语言运行时(CLR:Common Language Runtime).服务框架(Services Framework)和上层的两类应 ...

  7. Leetcode 887 Super Egg Drop(扔鸡蛋) DP

    这是经典的扔鸡蛋的题目. 同事说以前在uva上见过,不过是扔气球.题意如下: 题意: 你有K个鸡蛋,在一栋N层高的建筑上,被要求测试鸡蛋最少在哪一层正好被摔坏. 你只能用没摔坏的鸡蛋测试.如果一个鸡蛋 ...

  8. 优化 RequireJS 项目(合并与压缩) 【已翻译100%】

    英文原文:Optimize (Concatenate and Minify) RequireJS Projects 标签: RequireJS Node.js 参与翻译 (1人) : 裴宝亮 本文将演 ...

  9. 只允许一个 <configSections> 元素。它必须是根 <configuration> 元素的第一个子元素- HTTP Error 500.19

    这还是我第一次遇到这个错误,以前都没太注意配置文件中元素的放置顺序.这次在调试一个ASP.NET MVC项目的时候,突然就爆出HTTP Error 500.19错误,提示无法访问请求的页面,因为该页的 ...

  10. win7的目录和vbox的共享,linux中没有权限打开

    来自于 http://www.cnblogs.com/usegear/p/5120427.html win7的目录由vbox共享是个老话题.稳拿网上很多介绍. 在linux中通过文件夹不能打开,说没有 ...