导读:
介绍:
DWR(Direct Web Remoting)是一个WEB远程调用框架.利用这个框架可以让AJAX开发变得很简单.利用DWR可以在客户端利用JavaScript直接调用服务端的Java方法并返回值给JavaScript就好像直接本地客户端调用一样(DWR根据Java类来动态生成JavaScrip代码).它的最新版本DWR0.6添加许多特性如:支持Dom Trees的自动配置,支持Spring(JavaScript远程调用spring bean),更好浏览器支持,还支持一个可选的commons-logging日记操作官方,本文版本是DWR2.0 ,具体详情请访问DWR官方网站。
4.1、业务需求
通过一个简单的二级菜单来说明DWR的使用
4.2、业务实现
前台页面:
1一级菜单: 2 3 6 9
10 二级菜单:11
1213
js脚本:
1 <script src="${ctx}/dwr/interface/ExamDictionaryManager.js"></script>
2 <script type="text/javascript">
3function findSub2(){4ExamDictionaryManager.findSubNameList(dwr.util.getValue("tct"),function(obj){5dwr.util.removeAllOptions("subCode");6dwr.util.addOptions("subCode",obj,'subCode','subName');7});8}
9</script>
上面引用的${ctx}/dwr/interface/ExamDictionaryManager.js是后台操作的业务类,在这需要声明
findSub2()方法是触发一级菜单的值传到后台业务方法进行处理并返回
dwr.util.removeAllOptions("subCode");是把二级菜单subCode值先清空
dwr.util.addOptions("subCode",obj,'subCode','subName');是把二级菜单名称是subCode的以subCode为value,subName为text
提示:DWR2.0与DWR1.1的区别,是传入参数和回调函数顺序不同
DWR2.0:
红色字体是表明是参数在前,回调函数在后
1ExamDictionaryManager.findSubNameList(dwr.util.getValue("tct"),function(obj){2dwr.util.removeAllOptions("subCode");3dwr.util.addOptions("subCode",obj,'subCode','subName');4});5
DWR1.1:
红色字体表明是回调函数在前,参数在后
1ExamDictionaryManager.findSubNameList(function(obj){2dwr.util.removeAllOptions("subCode");3dwr.util.addOptions("subCode",obj,'subCode','subName');4},dwr.util.getValue("tct"));5}
dwr.xml文件
1
2
5 6
7 8
9
10
11
spring配置文件
web.xml配置
1
2
3 dwr-invoker
4 uk.ltd.getahead.dwr.DWRServlet
5
6 debug
7 true
8
9 1
10
1112
13 dwr-invoker
14 /dwr/*
15
业务方法:
1public List findSubNameList(String typeCode) {23 String hql = "select distinct new map(d.subCode as subCode,d.subName as subName) from ExamDictionary as d "
4 + "where d.typeCode =:typeCode"
5 return createQuery(hql).setString("typeCode", typeCode).list();6 }
7
通过前台js脚本传入的参数返回查询的数据集合
页面显示效果:
至此,二级级联菜单功能已经完成,通过上述例子,可以发现DWR框架为我们处理我们之前用XML或JSON进行数据转换
的功能,大大提高了开发者开发效率。
本文转自
http://www.blogjava.net/wuxj888java/archive/2008/01/08/173692.html
介绍:
DWR(Direct Web Remoting)是一个WEB远程调用框架.利用这个框架可以让AJAX开发变得很简单.利用DWR可以在客户端利用JavaScript直接调用服务端的Java方法并返回值给JavaScript就好像直接本地客户端调用一样(DWR根据Java类来动态生成JavaScrip代码).它的最新版本DWR0.6添加许多特性如:支持Dom Trees的自动配置,支持Spring(JavaScript远程调用spring bean),更好浏览器支持,还支持一个可选的commons-logging日记操作官方,本文版本是DWR2.0 ,具体详情请访问DWR官方网站。
4.1、业务需求
通过一个简单的二级菜单来说明DWR的使用
4.2、业务实现
前台页面:
1一级菜单: 2
10 二级菜单:11
1213
js脚本:
1 <script src="${ctx}/dwr/interface/ExamDictionaryManager.js"></script>
2 <script type="text/javascript">
3function findSub2(){4ExamDictionaryManager.findSubNameList(dwr.util.getValue("tct"),function(obj){5dwr.util.removeAllOptions("subCode");6dwr.util.addOptions("subCode",obj,'subCode','subName');7});8}
9</script>
上面引用的${ctx}/dwr/interface/ExamDictionaryManager.js是后台操作的业务类,在这需要声明
findSub2()方法是触发一级菜单的值传到后台业务方法进行处理并返回
dwr.util.removeAllOptions("subCode");是把二级菜单subCode值先清空
dwr.util.addOptions("subCode",obj,'subCode','subName');是把二级菜单名称是subCode的以subCode为value,subName为text
提示:DWR2.0与DWR1.1的区别,是传入参数和回调函数顺序不同
DWR2.0:
红色字体是表明是参数在前,回调函数在后
1ExamDictionaryManager.findSubNameList(dwr.util.getValue("tct"),function(obj){2dwr.util.removeAllOptions("subCode");3dwr.util.addOptions("subCode",obj,'subCode','subName');4});5
DWR1.1:
红色字体表明是回调函数在前,参数在后
1ExamDictionaryManager.findSubNameList(function(obj){2dwr.util.removeAllOptions("subCode");3dwr.util.addOptions("subCode",obj,'subCode','subName');4},dwr.util.getValue("tct"));5}
dwr.xml文件
1
2
5 6
7 8
9
10
11
spring配置文件
web.xml配置
1
2
3 dwr-invoker
4 uk.ltd.getahead.dwr.DWRServlet
5
6 debug
7 true
8
9 1
10
1112
13 dwr-invoker
14 /dwr/*
15
业务方法:
1public List findSubNameList(String typeCode) {23 String hql = "select distinct new map(d.subCode as subCode,d.subName as subName) from ExamDictionary as d "
4 + "where d.typeCode =:typeCode"
5 return createQuery(hql).setString("typeCode", typeCode).list();6 }
7
通过前台js脚本传入的参数返回查询的数据集合
页面显示效果:
至此,二级级联菜单功能已经完成,通过上述例子,可以发现DWR框架为我们处理我们之前用XML或JSON进行数据转换
的功能,大大提高了开发者开发效率。
本文转自
http://www.blogjava.net/wuxj888java/archive/2008/01/08/173692.html