论坛首页 Web前端技术论坛

DWR数据加载器Ext.ux.DWRDataProxy,支持将前台参数传到后台

浏览 3548 次
精华帖 (0) :: 良好帖 (0) :: 新手帖 (0) :: 隐藏帖 (0)
作者 正文
   发表时间:2008-07-08  
Ext.ux.DWRDataProxy 是对 Ext.data.DataProxy 的扩展

实现了通过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");
	...
}
   发表时间:2008-07-08  
DWR直接调用后台JAVA类方法

权限是怎么控制的?
0 请登录后投票
   发表时间:2008-07-08  
godson_2003 写道
DWR直接调用后台JAVA类方法

权限是怎么控制的?

你说的权限是指什么,能举个例子吗?
0 请登录后投票
   发表时间:2008-07-09  
权限是后台控制的。

我现在不太喜欢dwr了。太分散了。

还是建立一个前端控制器的servlet来统一调用和自定义序列化比较舒服。
0 请登录后投票
论坛首页 Web前端技术版

跳转论坛:
Global site tag (gtag.js) - Google Analytics