第一次尝试使用Dwr来开发ajax,js也没有想像那么难写。有一个感觉,Dwr的设计很像axis1,连显示服务的风格都很像,呵呵,是不是作者使借签了axis的设计思想啊
1、设计目标
避免查询的时候刷新页面的全部区域,只用改变查询结果显示的部分
2、web.xml中部署Dwr
xml 代码
- <servlet>
- <servlet-name>dwr</servlet-name>
- <servlet-class>uk.ltd.getahead.dwr.DWRServlet</servlet-class>
- <init-param>
- <param-name>debug</param-name>
- <param-value>true</param-value>
- </init-param>
- </servlet>
- <servlet-mapping>
- <servlet-name>dwr</servlet-name>
- <url-pattern>/dwr/*</url-pattern>
- </servlet-mapping>
3、Dwr.xml部置
xml 代码
- <dwr>
- <allow>
- <create creator="spring" javascript="FileManager">
- <param name="beanName" value="fileItemManager" />
- <include method="getFileItemsByParent" />
- </create>
- <convert match="com.csroad.fileproject.model.FileItem"
- converter="bean">
- <param name="include" value="id,name,fileType,parentId" />
- </convert>
- </allow>
-
- </dwr>
客户端调用的是Spring代理的javabean,所有creator要使用spring,如果是普通javabean,则使用new就可以了。javascript属性指定了客户端的js名字
参数,spring中是使用beanName来获取spring中的bean。如果是普通的javabean,则使用class,值为java类
需要注意的是convert,如果传递的对象不是基本类型,则需要配置javabean,并指定相关的属性。如配置文件中的id,name
需要说明的是,fileItemManager的方法是一返回一个java.util.List对象
4、页面中插入js
js 代码
- <script type='text/javascript' src='${ctx}/dwr/interface/FileManager.js'></script>
-
- <script type='text/javascript'
- src='<%=request.getContextPath()%>/dwr/engine.js'>
- </script>
- <script type='text/javascript'
- src='<%=request.getContextPath()%>/dwr/util.js'></script>
其中${ctx}/dwr/inteface/FileManger.js的名字要和前面dwr.xml中javscript属性的值一致。
5、编写JS代码
js 代码
- <script type="text/javascript">
-
- function query(parentId,label,dep){
- FileManager.getFileItemsByParent(parentId,getFileList);
- DWRUtil.useLoadingMessage("文件正在载入中,请稍等...........");
- }
-
- function getFileList(data){
- var cellfuncs=[
- function(data){
- if(data.fileType==1){
- return data.name;
- }
- var aDom=document.createElement("a");
- aDom.setAttribute("href","javascript:query('"+data.id+"','"+data.name+"','"+fileDep+"')");
- var aText=document.createTextNode(data.name);
- aDom.appendChild(aText);
- return aDom;
- },
- function(data){
- if(data.fileType==0){
- return "目录";
- }
- return "可下载文件";
- },
- function(data){
- if(data.fileType==0){
- return "无相关操作";
- }
- var aDom=document.createElement("a");
- aDom.setAttribute("href","javascript:openWindow('/scrood/yg/downloadRecordAction.html?method=applyDownload&dep="+fileDep+"&fileId="+data.id+"')");
- var aText=document.createTextNode("申请下载");
- aDom.appendChild(aText);
- return aDom;
-
- }
- ];
- DWRUtil.removeAllRows("fileResultBody");
- DWRUtil.addRows('fileResultBody', data,cellfuncs,{
- rowCreator:function(options) {
- var row = document.createElement("tr");
- return row;
- },
- cellCreator:function(options) {
- var td = document.createElement("td");
- td.setAttribute("align","center");
- return td;
- }
- });
- }
- </script>
在query查询函数中,调用FileManager得到查询结果,和普通的java方法调用一样。但要注意,第二个参数传入的是回调函数,用于处理响应值,注要是指如何渲染。
在回调函数中第一个要定义的就是cellfuns,它代表每一列值的表现形势,有多少function,就有多少列。每一个单元格的内容可以是简单的值,也可以是一个包含了其它HTML标签的Document.
接下来就是具体的处理参数值的过程。DwrUtil是DWR框架提供的一个非常有用的功具函数,包含通常的是JS处理功能,如动态添加select的option等,可以单独使用。
DwrUtil.addRows('fileResultBody',data,cellfuncs,...)是用来实际插入数据的,第一个插入是要插入数据所在的表格的ID,最好是tbody的ID,data为值,cellfuncs前面已经介绍了,最后两个参数是用于创建<tr>和<td>属性的
分享到:
相关推荐
一个Dwr的小例子 是一个table的显示问题,sqlserver2005数据库
dwr城市选择的联动,util.js方法的使用,动态table
NULL 博文链接:https://congpeixue.iteye.com/blog/258256
DWR 框架使用手册DWR 框架使用手册DWR 框架使用手册DWR 框架使用手册DWR 框架使用手册DWR 框架使用手册
DWR使用步骤DWR使用步骤DWR使用步骤DWR使用步骤DWR使用步骤DWR使用步骤DWR使用步骤DWR使用步骤DWR使用步骤DWR使用步骤DWR使用步骤DWR使用步骤
使用DWR开发AJAX For J2EE
使用dwr+spring实现消息推送 。
使用dwr进行后台交互的j2ee小demo
dwr 框架dwr 框架dwr 框架dwr 框架dwr 框架dwr 框架
配置和使用DWR进行Ajax开发
dwr dwrdwr dwrdwr dwrdwr dwrdwr dwrdwr dwrdwr dwrdwr dwrdwr dwrdwr dwrdwr dwrdwr dwrdwr dwrdwr dwrdwr dwrdwr dwrdwr dwrdwr dwrdwr dwrdwr dwrdwr dwr
使用dwr上传文件源码
dwr跨域访问以及dwr的使用+dwr.jar
DWR现在已经在java平台的AJAX应用中使用比较广泛,下面将以前项目中用到的部分内容(测试部分)贴出来,以供参考
该例子很好的介绍了dwr的使用,是一个完整的例子,在ssh技术框架下使用!
dwr包;dwr包;dwr包;dwr包;dwr包;dwr包;dwr包;dwr包;dwr包;dwr包;dwr包;dwr包;dwr包;dwr包;dwr包;dwr包;dwr包;dwr包;dwr包;dwr包;dwr包;dwr包;dwr包;dwr包;dwr包;dwr包;dwr包;
自己总结的一个的dwr的使用说明,附有源码,以及代码的详细解释,配置文件的详细解释。完全可以运行。同时介绍了与其类似用法的dotnet版本的ajax组建。需要自己下载dwr.jar 3.0版本。或者到我的空间下载dwr.jar 3.0...
DWR 是 Joe Walker 和 Mark Goodwin 开发的,并且该项目是在Apache许可下的一个开源的解决方案,它供给那些想要以一种简单的方式使用Ajax和XMLHttpRequest的开发者。7、 使用DWR进行开发的步骤 7 7.1、 配置DWR的...
DWR是一个Java库,能够使浏览器中的JavaScript和服务器上的Java进行互动,并尽可能简单地调用Java的方法。本文档讲一下关于这个框架的入门配置及应用,服务器采用tomcat
Dwr的使用实例 war文件 1. lib要导入包: dwr-2.0.M3.jar 2. web.xml配置: 3. WEB-INF下dwr.xml的配置 4. bean例子: 5. index.jsp的例子 详细内容请下载