笔记:Struts2 的 JSON 插件

时间:2022-06-15 20:57:05
  • 安装插件,将其复制到Web应用的WEB-INF/lib 目录下
    • Struts2-json-plugin-2.3.16.3.jar
    • json-lib-2.3-jdk15.jar
    • commons-beanutils-1.8.0.jar
    • commons-collections-3.2.2.jar
    • ezmorph-1.0.6.jar
  • JSON注解序列化于反序列化说明,可以用于 getxxxx方法,来指定以序列化自定义参数

     
     

参数名称

说明

默认值

序列化

反序列化

name

自定义名称

empty

yes

no

serialize

字段是否包含序列化

true

yes

no

deserialize

字段是否包含反序列化

true

no

yes

format

格式化日期类型的数据

"yyyy-MM-dd'T'HH:mm:ss"

yes

yes

 
 

  • Struts.xml 配置
    • 在配置包时,需要继承 json-default 包,因为 json-default 包中提供了 json 类型的 Result
    • json 结果类型允许配置的参数如下:
      • 参数 contentType:MIME类型,默认值 text/html
      • 参数 noCache:是否取消浏览器缓存,如果设置为 true,则在响应头增加 Cache-Control:no-cache、Expires:0、Pragma:No-cache,默认值 false
      • 参数 excludeNullProperies:设置是否不序列化属性值为 null 的属性
      • 参数 root:设置该参数将不再把整个Action对象序列化成JSON字符串,而只将该参数指定的Action属性序列化成JSON字符串返回给客户端
      • 参数 excludeProperties:排除序列化的属性,配置在这个参数的将不会序列化JSON字符串,多个参数以英文逗号分隔
      • 参数 includeProperties:包含序列化的属性,配置在整个参数的将会序列化JSON字符串,多个参数以英文逗号分隔
      • 参数 ignoreHierarchy:是否只序列化 Action 本身的属性,不会理会父类的属性,设置为 false 则会序列化父类的属性,默认值 true
      • 参数 enableGZIP:设置是否对JSON响应启用 gzip 压缩,默认值 false
      • 参数 wrapPrefix:设置系统生成的JSON结果字符串前添加固定字符串
      • 参数 wrapSuffix:设置系统生成的JSON结果字符串后添加固定字符串
    • 配置示例如下:

      <package name="drsoft" extends="json-default">

      <action name="getuser" class="org.drsoft.action.GetUserAction">

      <result type="json">

      <param name="root"></param>

      <param name="wrapPrefix">前缀</param>

      <param name="wrapSuffix">后缀</param>

      <param name="noCache">true</param>

      <param name="contentType">application/Json</param>

      </result>

      </action>

      </package>