问题描述
最近刚学Extjs,有几点不明白,js部分文件如下:Ext.onReady(function(){ var proxy=new Ext.data.HttpProxy({url:'getInfo.action'}); //这里的url不是很明白 var reader=new Ext.data.JsonReader( { },[ {name: 'Id'} , {name: 'name'} , {name: 'age'} ] ); //构建Store var store=new Ext.data.Store( { proxy:proxy, local:true, reader:reader });看到的资料请求的都是URL,不明白这个url对应的Action方法是怎么写的,(本人要做一个简单的列表)! 问题补充:<br />附上 action里面的代码<br /><br /> //列表的数量<br />List list=new ArrayList();<br />int totalCount=list.size();<br />try {<br />JSONArray jsonObject = JSONArray.fromObject(list);<br />String jsonData = "{totalCount:" + totalCount + ",rows:" + jsonObject.toString() + "}";<br />response.setContentType("text/json;charset=UTF-8");<br /> //输出为json的格式<br />response.getWriter().print(jsonData);<br />} catch (IOException e) {<br />e.printStackTrace();<br />}<br />return null;<br /><br /><br />前台接收不到,不出数据!只有一个框框!!
解决方案
附上 action里面的代码 //列表的数量List list=new ArrayList();int totalCount=list.size();try {JSONArray jsonObject = JSONArray.fromObject(list);String jsonData = "{totalCount:" + totalCount + ",rows:" + jsonObject.toString() + "}";response.setContentType("text/json;charset=UTF-8"); //输出为json的格式response.getWriter().print(jsonData);} catch (IOException e) {e.printStackTrace();}return null;
解决方案二:
首先把数据放到hm.put("id", "") ;“”是你放入的数据hm.put("name", "") ;hm.put("age", "") ;把多个hm放到list中list.add(hm);JSONArray ary = new JSONArray(list);JSONObject json = new JSONObject();json.put("resultSize", resultSize);json.put("dataList", ary);writeJson(response, json.toString());//------------------- public static void writeJson(HttpServletResponse response, String json){ try {response.setContentType("text/html;charset=UTF-8");response.getWriter().print(json);} catch (Exception e) {System.out.println(e);} }这样就可以了
解决方案三:
可能是你前台解析的时候解析的方式不对:store里面reader的方式不对,你再试试reader: new Ext.data.JsonReader({ root: 'rows', totalProperty: 'totalCount', id: 'MID' },['Id','name','age'])
解决方案四:
建议你看看几个类,store,jsonStore,arrayStore,simpleStore,对它们有个了解,这些都是在工作经常用到的
解决方案五:
action后台里面应该返回一个json格式的数据给前台