使用Struts2的JSON插件來實現JSON數據傳遞

想要實現此功能第一步需要Struts2的核心架包,第二步需要struts2-json-plugin-2.3.30架包,在lib文件夾下可以找到。
還是借用上次的筆記 來繼續寫,這個時候我們就不需要用到Servlet了,要使用到Action。

配置xml
    <!-- (1)定義package,並繼承json-default -->
    <package name="json" namespace="/" extends="json-default">

        <action name="*ShowAction" class="action.ShowAction" method="{1}">
            <!-- (2)result的type類型爲“json”,將返回序列化的json格式數據 -->
            <result name="success" type="json">
                <!-- (3)指定需要格式化的跟對象 -->
                <param name="root">result</param>
            </result>
        </action>

    </package>


Action中的寫法
public class ShowAction extends ActionSupport {

    //要將返回的JSON數據放到值棧範圍,這裏不需要我們手動轉換struts2的json插件會爲我們轉換
    Map<String, Object> result = new HashMap<String, Object>(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<String> listStr = new ArrayList<String>(0);
        listStr.add("小明");
        listStr.add("小紅");
        JSONArray jsonListStr = JSONArray.fromObject(listStr);

        List<Users> listUsers = new ArrayList<Users>(0);
        listUsers.add(new Users("大名", "123"));
        listUsers.add(new Users("大紅", "456"));
        JSONArray jsonListUsers = JSONArray.fromObject(listUsers);

        Map<String, String> mapStr = new HashMap<String, String>(0);
        mapStr.put("彩虹", "彩彩");
        mapStr.put("豆豆", "小豆");
        JSONObject jsonMapStr = JSONObject.fromObject(mapStr);

        Map<String, Users> mapUser = new HashMap<String, Users>(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<String, Object> getResult() {
        return result;
    }

    public void setResult(Map<String, Object> result) {
        this.result = result;
    }

}

前臺的jsp頁面就需要訪問action了
<script>

  $(function () {
    $.ajax({
      type:"POST",
      dataType:"JSON",
      url:"/showShowAction",
      success:function(data){

      }
    });
  });


筆記代碼
http://download.csdn.net/detail/gxy1317/9619519

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章