struts2中配置json

     struts2和json的集成,是为了适应在action 处理完后需要向对端输出相应对象的多个属性,简单的例子是:多级select标签的联动,这个时候从action返回的值不仅仅是SUCCESS or ERROR这么简单,而是在后端拼接好的<option>xxx</option>,这个时候JSON排上了用场
     附加一句,如果不是在Struts2中使用json,例如在servlet中,这个时候是通过拼接json格式的字符串返回到前端(注:这只是我看到有类似的例子,稍后自己会亲手测试下..这或许我印证了: struts2h会把返回的对象自动封装成相应的json格式. 这句话,只不过在servlet里我们是自己来动手封装了)
     原理:通过配置,struts2会调用action里面相应属性的getter方法拿到对象,在封装成jsong格式后序列化传送到前端
    
     配置方式:
     1>加入json-lib-2.4-jdk15.jar 
     2>在struts.xml的配置里面加上:
<package name="strtus2" extends="json-default"></package>

      注:以后要用到json的action extends这个包就可以了
     3>action的配置 例子:
       
 <action name="registerUtilAction" class="springRegisterUtilAction" >
                  <result name="areaListDO" type="json"> <!-- type=json 切记 result的name属性要和返回的属性名一样-->
                        <param name="excludeNullProperties">true</param> <!-- 是否去掉返回值为NULL的properties -->
                        <param name="includeProperties"><!-- 包括哪些properties -->
                              areaListDO
                        </param>
                  </result>
            </action>  

     4> 编写action,记住返回的属性一定要有getter方法,不需要返回的属性可用:
       @JSON(serialize = false)
         这个json注解标示,即不序列化这个属性,最好不需要返回的都这么注解,否则可能会出现不能序列化的异常等
     5>前端提取json对象,这里推荐用firebug等工具查看下:
              

    可以清晰的看到json的内容,甚至json的格式:对与这截图 我的areaListDO 只有两个属性  areaList(又包括areaId,areaInfoPK和areaName三个属性) 和results两个属性,还是比较方便的, 在前端提取json格式可以这样:
    json.areaListDO.results 即json对象的areaListDO(这个是我返回的属性名)的results这个属性
     也可以 json["areaListDO"].results 之所以这么取 是看到网上有人说用中括号[] 取是避免属性中有中文,不过我亲自测试过,用"." 取含有中文的属性也是没有乱码的...
     大功告成 ..





  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值