zoukankan      html  css  js  c++  java
  • struts2 使用jsonplugin

    配置中的参数含义:

    root参数用于指定要序列化的根对象,如果省去这一配置,表示要序列化action中的所有属性 
    ignoreHierarchy 为false时表示要序列化根对象的所有基类 
    excludeProperties表示排除的序列化的属性

    includeProperties表示哪些属性被序列化

    Action配置:

     

    [xhtml] view plaincopy
    1. <!-- jsonplugin的使用配置 -->  
    2.         <!-- package要继承json-default 以加载json插件 -->  
    3.         <action name="jsonAct" class="cn.enjoylife.prac.action.JsonAction">  
    4.             <result type="json">  
    5.                 <!-- root参数用于指定要序列化的根对象,如果省去这一配置,表示要序列化action中的所有属性 -->  
    6.                 <param name="root">map</param>  
    7.                 <!-- ignoreHierarchy 为false时表示要序列化根对象的所有基类 -->  
    8.                 <param name="ignoreHierarchy">false</param>  
    9.                 <!-- 排除hello属性,使其不被序列化 -->  
    10.                 <param name="excludeProperties">hello</param>  
    11.             </result>  
    12.         </action>  

    JsonAction.java:

     

    1. /** 
    2.  * @author Evan 
    3.  *  
    4.  */  
    5. public class JsonAction extends ActionSupport {  
    6.     private static final long serialVersionUID = 3870310687165227565L;  
    7.     private int[] ints = { 100200 };  
    8.     private Map<String, Object> map = new HashMap<String, Object>();  
    9.     private String hello = "helloWorld";  
    10.     private String username = "evan";//没有getter方法,不会被序列化  
    11.     private String password = "pwd";  
    12.     private String validateCode = "123456";  
    13.     public int[] getInts() {  
    14.         return ints;  
    15.     }  
    16.     public void setInts(int[] ints) {  
    17.         this.ints = ints;  
    18.     }  
    19.     @JSON(name="newMap")//重新命名  
    20.     public Map<String, Object> getMap() {  
    21.         return map;  
    22.     }  
    23.     public void setMap(Map<String, Object> map) {  
    24.         this.map = map;  
    25.     }  
    26.     public String getHello() {  
    27.         return hello;  
    28.     }  
    29.     public void setHello(String hello) {  
    30.         this.hello = hello;  
    31.     }  
    32.     public void setUsername(String username) {  
    33.         this.username = username;  
    34.     }  
    35.     @JSON(serialize=true)//这是默认值,可以省去  
    36.     public String getPassword() {  
    37.         return password;  
    38.     }  
    39.     public void setPassword(String password) {  
    40.         this.password = password;  
    41.     }  
    42.     @JSON(serialize=false)//serialize参数为false,不会被序列化  
    43.     public String getValidateCode() {  
    44.         return validateCode;  
    45.     }  
    46.     public void setValidateCode(String validateCode) {  
    47.         this.validateCode = validateCode;  
    48.     }  
    49.     @Override  
    50.     public String execute() throws Exception {  
    51.         map.put("info""今天的雨真大啊!");  
    52.         return SUCCESS;  
    53.     }  
    54. }  

    使用jquery操作返回的json串:

     

    [javascript] view plaincopy
    1. $(document).ready(function(){  
    2.     $.getJSON(  
    3.         "./jsonAct.action",   
    4.         function(data){  
    5.             alert(data.info);  
    6.         }  
    7.     );  
    8. });  

    https://cwiki.apache.org/confluence/display/WW/JSON%20Plugin

  • 相关阅读:
    【转】什么是5G?居然有人用漫画把它讲得如此接地气!
    【转】Centos下编译升级安装Boost
    【转】SSH穿越跳板机:一条命令跨越跳板机直接登陆远程计算机
    部署JupyterLab和pyalgotrade搭建web策略回测环境
    [转]Linux中python3.6+ipython+Jupyter Notebook环境
    环境命令备忘
    [转]微软商店 打开就显示无法加载该页面 代码0x80131500?
    [转]Centos 7 安装部署 GitLab 服务器
    [转]本文采用all-in-one(一体化的)安装OpenShift
    [转]Linux编译和安装boost库
  • 原文地址:https://www.cnblogs.com/hy928302776/p/3357323.html
Copyright © 2011-2022 走看看