Posted in Javascript onMarch 22, 2009
一,在Ext中直接使用DWR
1,PoJO的Manager类为
public class CustomerManagerImpl extends HibernateDaoSupport implements CustomerManager { public PageModel allCustomers() { PageModel pageModel = new PageModel(); List datas = new ArrayList(); int total ; String hql = "from Customer"; datas = this.getHibernateTemplate().find(hql); String countHql = "select count(*) from Customer"; total = ((Long)this.getSession().createQuery(countHql).uniqueResult()).intValue(); pageModel.setDatas(datas); pageModel.setTotal(total); return pageModel; } }
2,那么直接调用DWR取得数据为(dwr.xml代码参考后面)
var store = new Ext.data.Store({ //data:... 这里有DWR调用直接得到 reader:new Ext.data.JsonReader({id:"sn"},fields), //List数据 sortInfo:{field:'name', direction:'ASC'}// 排序信息 }); //DWR+EXT整合的句子, store.loadData(dataslist);加载数据 //data返回的是PageModel类,属性为total,datas(List数据类型) //这里不用建立函数,直接执行 JCustomerManager.allCustomers(function(data) { var total = data.total; var dataslist=data.datas; //数据为List类型 store.loadData(dataslist); //加载数据 });
3,这里的DWR只做一件事,通过匿名函数,将返回的值的List数据直接注入给store。DWR返回的data可以被JsonStore直接读取,我们需要设置对应的fields参数,以告诉JsonReader需要哪些属性。
4,补充dwr.xml代码
<dwr> <allow> <!-- dwr+spring 注入方式--> <create creator="spring" javascript="JCustomerManager"> <param name="beanName" value="customerManager"/> </create> <!-- 使用到的类要用到转换器--> <convert match="com.graduate.crm.PageModel" converter="bean"></convert> <convert match="com.graduate.crm.model.CompanyCustomer" converter="bean"></convert> </allow> </dwr>
DWR Ext 加载数据
声明:登载此文出于传递更多信息之目的,并不意味着赞同其观点或证实其描述。
Reply on: @reply_date@
@reply_contents@