DWR入门与应用

DWR入门 

DWR众多Ajax框架中的一种,那么在众多框架中它的特色是什么呢?通过JavaScript代码调用服务器端的Java方法这也就是DWR的特色所在,今天自学了一下DWR框架现在就来做个简单的学习总结。

首先我们在做开发之前总是要得到所要用到的jar包,当然DWR也不例外了,我们可以在这里获得我们需要的jar包,获得我们的下载包后我们可以得到我们需要的dwr.jar文件,然后把我们开发所需要的jar文件拷贝到WEB-INF/lib目录下(注意:DWR运行的时候需要依赖于commons-logging库的支持,所以我们还需要把相应的jar包复制到WEB-INF/lib目录下)现在我们就在我们的web.xml文件配置将特定请求转发给DWR的核心Servlet

	<servlet>
		<servlet-name>DwrServlet</servlet-name>
		<servlet-class>org.directwebremoting.servlet.DwrServlet</servlet-class>
		<!--这里的debug在我们开发阶段可以配上但是实际发布的时候记得去掉-->
		<init-param>
			<param-name>debug</param-name>
			<param-value>true</param-value>
		</init-param>
	</servlet>
	<servlet-mapping>
		<servlet-name>DwrServlet</servlet-name>
		<url-pattern>/dwr/*</url-pattern>
	</servlet-mapping>

接下来我们需要在web.xml的同一目录下建立dwr.xml文件,它的作用在于定义Java类和JavaScript之间的对应

<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE dwr PUBLIC "-//GetAhead Limited//DTD Direct Web Remoting 2.0//EN"
"dwr/dwr20.dtd">

<dwr>
	<allow>
		<create creator="new" javascript="myDwr">
			<param name="class" value="java.util.Date" />
		</create>
	</allow>
	
</dwr>

这样我们就搭建了一个简单的DWR应用的例子了。

DWR.XML一探究竟


dwr.xml文件到底有什么东东呢?接下来我们就去看看它里面到底都有些什么

<allow>元素:它定义了DWR能够创建和转换的类,是dwr.xml中最重要的元素

<create>元素:创建器,定义如何将一个Java类转换成JavaScript对象,它有几个常用的属性

         creator属性:DWR内置多个创建器用于处理多种类型Java类,常用的内置创建器有

                new:用new关键字创造对象

                none:不创建对象,适用于对象已经存在或者调用的是静态方法

                (使用new和none创建器需要指定class参数<param name="class" value="com.***.***">)

                javascript属性:在客户端给创建的javascript对象命名

                scope属性:作用域,选项可以是application、session、request、page

                <param>元素:用来指定创建器的参数

                <include>元素:定义允许访问的方法列表,method属性指定暴露给客户端的方法

                <exclude>元素:与<include>元素正好相反,定义不允许访问的方法列表,method属性指定不被暴露给客户端的方法

<convert>元素:它用于定义Java类型和JavaScript类型之间的对应关系

                 支持类型如下:

                       基本类型,boolean、int、double等

                       包装类,Boolean、Integer等

                        java.lang.String

                       日期类型,java.util.Date、java.sql.Times、java.sql.Timestamp等

                       数组

                       集合,List、Set、Map、Iterator等

Bean转换器:<convert converter="bean" match="www.dwrdemo.DwrBean" />

 

看完了dwr.xml文件现在我们再来看看engine.js和util.js

engine.js文件

               对DWR来说非常重要,它是DWR客户端的核心,用来把动态生成的javascript对象转换为服务器上的java对象,所以要用到dwr的地方都要用到它了,一般的我们都使用该函数库设置一些DWR的全局属性

设置超时

dwr.engine.setTimeout(time)//注意这里是以毫秒为单位

设置请求的方法

dwr.engine.setHttpMethod(method)//该方法只能设置两个值POST和GET

设置调用顺序

dwr.engine.setOrdered(boolean)//Ajax通常都是异步调用,但服务器响应的顺序与调用顺序往往不同,如果想实现一致把值设置为true即可

util.js文件

               util.js文件中包含了一些工具函数,通过这些函数的帮助,可以大大的简化我们的操作,其实util.js文件对DWR来说依赖性并不是很强,可以单独把util.js文件抽出来作为一个工具函数库,那么我们就来看看这个util.js能为我们简化那些操作

$():根据指定ID查找页面中的HTML元素简化了我们在js中写的大量的document.getElementById(ID);

访问元素值

dwr.util.getValue(id):返回HTML元素的值,其中id为HTML元素id属性的值

dwr.util.setValue(id,value[,options]):根据提一个参数中指定的id找到相应元素,并根据第二个参数value改变该元素的值

操作列表

dwr.util.removeAllOption(id):用于删除列表中的所有项

dwr.util.addOptions():用于添加列表项目

操作表格

dwr.util.removeAllRows(id):删除table中所有行,其中id为table元素的id属性值

dwr.util.addRows(id,array,cellFuncs,[options]):向表中添加数据行,其中id为table元素的id属性值

你可能感兴趣的:(DWR入门与应用)