浏览 3548 次
精华帖 (0) :: 良好帖 (0) :: 新手帖 (0) :: 隐藏帖 (0)
|
|
---|---|
作者 | 正文 |
发表时间:2008-07-08
实现了通过DWR直接调用后台JAVA类方法,将数据返回到前台,创建Ext.data.Store对象, 一般使用于Grid,ComboBox等需要后台取数据的控件 除此之外,DWRDataProxy还支持对数据进行查找时,将查找参数直接传给后台JAVA类方法 使用方法: var store = new Ext.data.Store({ proxy: new Ext.ux.DWRDataProxy({dwrMethod: Param.findParams}), reader: new Ext.data.JsonReader({ root: 'datas', totalProperty: 'totalCount', id: 'id' }, [ {name: 'id', mapping: 'id', type: 'int'}, {name: 'name', mapping: 'name'}, {name: 'age', mapping: 'age'} ]) }); dwrMethod: Param.findParams,这里指定DWR的方法 Param.findParams,如下: /** * @argsMap 前台传过来的参数集合 **/ public Map findParams(Map argsMap){ //如分页时,会将以下两个参数传进来。 int start = Integer.parseInt((String)argsMap.get("start")); int limit = Integer.parseInt((String)argsMap.get("limit")); ... Map returnMap = new HashMap(); //returnMap构造形如:{totalProperty:XXX,datas:[{id:xx,name:xx,age:xx},{id:xx,name:xx,age:xx}...]} return returnMap; } 当需要对数据时行查找时,如点击按钮,调用以下JS方法: function search(){ var name = 取得查找名称字符串值; var age = 取得查找年龄字符串值; store.load({params:{start:0,limit:10,name:name,age:age}}); } 这里关键是将查找需要传递的参数放进load的参数里 这样后台findParams方法的参数agrsMap就包含这四个参数 public Map findParams(Map argsMap){ int start = Integer.parseInt((String)argsMap.get("start")); int limit = Integer.parseInt((String)argsMap.get("limit")); String name = (String)argsMap.get("name"); String age = (String)argsMap.get("age"); ... } 声明:ITeye文章版权属于作者,受法律保护。没有作者书面许可不得转载。
推荐链接
|
|
返回顶楼 | |
发表时间:2008-07-08
DWR直接调用后台JAVA类方法
权限是怎么控制的? |
|
返回顶楼 | |
发表时间:2008-07-08
godson_2003 写道 DWR直接调用后台JAVA类方法
权限是怎么控制的? 你说的权限是指什么,能举个例子吗? |
|
返回顶楼 | |
发表时间:2008-07-09
权限是后台控制的。
我现在不太喜欢dwr了。太分散了。 还是建立一个前端控制器的servlet来统一调用和自定义序列化比较舒服。 |
|
返回顶楼 | |