初学ext,对ext几个store还不熟悉,后台已经是把数据返回了,但前台就是获取不到,浪费了半天的时间,我把源代码铁一下:
后台servlet代码:
public class DataServiceServlet extends HttpServlet {
public void doGet(HttpServletRequest request, HttpServletResponse response)
throws ServletException, IOException {
this.doPost(request, response);
}
public void doPost(HttpServletRequest request, HttpServletResponse response)
throws ServletException, IOException {
response.setContentType("text/json;charset=utf-8");//设置返的数据不会出现中文乱码.
PrintWriter out = response.getWriter();
String json = "{root:[{name:'name1',password:'111'},{name:'name2',password:'222'}]}";
System.out.println(json);
out.write(json);
out.flush();
out.close();
}
}
这后台代码是完全没问题的.
看看前台的.
Ext.onReady(function() {
var simpStore = new Ext.data.JsonStore({
url : 'http://localhost:8080/extDemo/getData',
root : 'root',
fields : ['name','password']
});
simpStore.on('load', function(tt){alert(tt.getCount());});
simpStore.load();
});
关键就在红色这段,原来我是没有这个,直接在后面写: alert(simpStore.getCount());
这样,结果都是0,后来看了老外的一个提示,才知道,异步获取,要先用On方法注册下load,这个的作用是等到load完成之后,才调用load方法。否则,就没Load完,就执行下一段了,弹出来的当然就是0.O(∩_∩)O哈哈~