[Struts2]17-使用Struts2的JSON插件来实现JSON数据传递

想要实现此功能第一步需要Struts2的核心架包,第二步需要struts2-json-plugin-2.3.30架包,在lib文件夹下可以找到。

还是借用上次的笔记来继续写,这个时候我们就不需要用到Servlet了,要使用到Action。

配置xml

  
  
  
      
          
          
              
            result  
          
      
  

Action中的写法

public class ShowAction extends ActionSupport {  
  
    //要将返回的JSON数据放到值栈范围,这里不需要我们手动转换struts2的json插件会为我们转换  
    Map result = new HashMap(0);  
  
    public String show(){  
  
        Users users = new Users("张三", "q123");  
  
        //将Users对象转换为JSONObject  
        JSONObject jsonObject = JSONObject.fromObject(users);  
  
        //使用JSONObject的toString()方法将JSONObject转换成字符串  
        System.out.println( "users:" + jsonObject.toString() );  
  
        List listStr = new ArrayList(0);  
        listStr.add("小明");  
        listStr.add("小红");  
        JSONArray jsonListStr = JSONArray.fromObject(listStr);  
  
        List listUsers = new ArrayList(0);  
        listUsers.add(new Users("大名", "123"));  
        listUsers.add(new Users("大红", "456"));  
        JSONArray jsonListUsers = JSONArray.fromObject(listUsers);  
  
        Map mapStr = new HashMap(0);  
        mapStr.put("彩虹", "彩彩");  
        mapStr.put("豆豆", "小豆");  
        JSONObject jsonMapStr = JSONObject.fromObject(mapStr);  
  
        Map mapUser = new HashMap(0);  
        mapUser.put("1", new Users("小彩虹", "123"));  
        mapUser.put("2", new Users("小豆豆", "123"));  
        JSONObject jsonMapUser = JSONObject.fromObject(mapUser);  
  
        result.put("jsonListStr", jsonListStr);  
        result.put("jsonListUsers", jsonListUsers);  
        result.put("jsonMapStr", jsonMapStr);  
        result.put("jsonMapUser", jsonMapUser);  
        result.put("users", jsonObject);  
  
        return Action.SUCCESS;  
    }  
  
  
    public Map getResult() {  
        return result;  
    }  
  
    public void setResult(Map result) {  
        this.result = result;  
    }  
  
}  

前台的jsp页面就需要访问action了