现在功能是直接读取后台传过来的一个bean然后给控件进行赋值。
先创建一个model:'customTarget'然后在model里面写个代理获取后台数据proxy ,然后再建立个对象customMonthTarget 用ModelManager取得model,最后在对象的load方法里获取值rec.get('launchCount');
代码如下:
Ext.define('customTarget', { extend : 'Ext.data.Model', fields : [ {name : 'customerCount',//本月虚拟客户数 type : 'string' }, { name : 'launchCount',//开展客户数 type : 'string' } ], proxy : { type : 'ajax', url : basePath + 'manage/monthtarget/getCustomMonthTarget.do', reader : { type : 'json', root : 'customMonthTarget' } } }); var customMonthTarget = Ext.ModelManager.getModel('customTarget'); customMonthTarget.load(1,{ success:function(rec){ // 本月虚拟客户数 Ext.getCmp("customerCount").setValue(rec.get('customerCount')); // 开展客户数 Ext.getCmp("launchCount").setValue(rec.get('launchCount')); }, callback:function(o,response,success) { if (success == false){ window.top.location.href = basePath + "page/errors.jsp"; } } });
另外看load里面的callback方法,如果返回数据错误后台抛出异常情况下,在后台设置键值对success为false,在load的回调函数里写一个处理错误的连接,这样就会直接跳转的错误处理页面。我原来的想法是在spring里拦截器,如果出错spring会自动拦截跳转到另外一个页面,但是我忽略了一件事情,extjs的请求是异步的,所以拦截器无法实现错误跳转。所以只能写load的回调函数来处理了。
小宝制造。