EXtjs与后台的交互

最近刚学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方法是怎么写的,(本人要做一个简单的列表)!

附上 action里面的代码
[code="java"]
//列表的数量
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;
[/code]

action后台里面应该返回一个json格式的数据给前台

建议你看看几个类,store,jsonStore,arrayStore,simpleStore,对它们有个了解,这些都是在工作经常用到的

可能是你前台解析的时候解析的方式不对:
store里面reader的方式不对,你再试试
reader: new Ext.data.JsonReader(
{ root: 'rows', totalProperty: 'totalCount', id: 'MID' },
['Id','name','age']
)

首先把数据放到
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);
}
}
这样就可以了