水神骑士联盟吧 关注:4贴子:334
  • 4回复贴,共1

关于AJAX与struts-json包的使用

只看楼主收藏回复

当使用struts-json包,处理完请求返回json类型处理时,struts会将valueStack的list栈,栈顶元素的属性(提供get方法的字段)封装为json字符串返回到ajax.responseText
注意:
使用模型驱动时会将模型驱动的对象放入栈顶,所以会封装模型对象的属性而非action的属性!!!


IP属地:河北1楼2016-05-24 19:04回复
    使用struts框架整合的json框架需要导入struts2-json-plugin-2.3.4.1.jar包,
    自己配置的package需要继承json-default(json-default继承于struts-default),
    需要使用的action配置返回结果类型为json,由拦截器将valuestack的list栈顶元素转换为json字符串返回客户端


    IP属地:河北2楼2016-05-24 22:16
    回复
      配置root属性后将会把root对应的属性封装为json字符串


      IP属地:河北3楼2016-06-13 18:13
      回复
        在没有不使用struts框架时操作json:
        public static void main(String[] args) {
        /**
        * json解析
        */
        JSONObject jsonObj = JSONObject.fromObject("{'bookList':[{'name':'Think in java','price':100,'remark':'神书'}],'bookType':'计算机'}") ;
        JSONArray jsonArray = jsonObj.getJSONArray("bookList") ;
        Object[] array = jsonArray.toArray() ;
        System.out.println(Arrays.toString(array));
        System.out.println("======================================================");
        /**
        * 设置json
        */
        //手动设置json属性
        JSONObject json = new JSONObject() ;
        Book book = new Book() ;
        book.setName("Think in java");
        book.setRemark("神书") ;
        book.setPrice(100) ;
        ArrayList<Book> list = new ArrayList<Book>() ;
        list.add(book) ;
        //设置对应属性值,以下3个方法作用相同
        json.put("bookList", list) ;
        json.element("bookType", "计算机") ;
        json.accumulate("messge", "success") ;
        json.discard("计算机") ;//删除对应属性值
        System.out.println(json);
        //将对象转化为json对象
        // JSONObject object = JSONObject.fromObject(book) ;
        // System.out.println(object);
        }


        IP属地:河北4楼2016-06-13 19:10
        回复
          使用拼字符串转json,和new JsonObject的区别
          @Test
          public void test(){
          JSONObject json = JSONObject.fromObject("{name:'\\\''}") ;
          json.put("name2", "\\\'") ;
          System.out.println(json);
          }
          运行结果:{"name":"'","name2":"\\'"}


          IP属地:河北6楼2016-07-01 00:39
          回复