DWR Is Easy Ajax For Java
简介
作为一个java open source library;DWR可以帮助开发人员完成应用AJAX技术的web程序。它可以让浏览器上的JavaScript方法调用运行在web服务器上java方法。
最大挑战是java method call的同步特征与Ajax异步特性之间的矛盾。在异步模型里;结果只有在方法结束后才有效。DWR解决了这个问题;把回调函数当成参数传给方法;处理完成后;自动调用回调方法
安装DWR的Jar包
下载dwr.jar文件 。把它放到你的webapp的WEB-INF/lib目录下。
DWR官方网站:
http://getahead.org/dwr
DWR下载地址:http://getahead.org/dwr/download
配置
web.xml
配置DWR的Servlet
- <servlet>
- <servlet-name>dwr-invokerservlet-name>
- <display-name>DWR Servletdisplay-name>
- <servlet-class>uk.ltd.getahead.dwr.DWRServletservlet-class>
- <init-param>
- <param-name>debugparam-name>
- <param-value>trueparam-value>
- init-param>
- servlet>
- <servlet-mapping>
- <servlet-name>dwr-invokerservlet-name>
- <url-pattern>/dwr/*url-pattern>
- servlet-mapping>
xml 代码
dwr .xml
Dwr自己相关的配置信息
<p:colorscheme colors="#ffffff,#000000,#1c1c1c,#333399,#00e4a8,#ffcf01,#ff0000,#3333cc"></p:colorscheme>
xml 代码
- <dwr>
- <allow>
- <create creator="new" javascript=“UserDwrAction">
- <param name="class“
- value=“com.dwr.demo.action.UserDwrAction"/>
- create>
- <convert converter=”bean”
- match=”com.dwr.demo.model.User”/>
- allow>
- dwr>
dwr.xml-- create
dwr.xml文件中的create元素的结构如下:
creator和javascript名字是重点。
creator属性 是必须的 - 它用来指定使用那种创造器。
默认情况下DWR1.1有8种创造器。它们是:
new: 用Java的new关键字创造对象。
spring: 通过Spring框架访问Bean。
jsf: 使用JSF的Bean。 (v1.1+)
struts: 使用Struts的FormBean。 (v1.1+)
Javascript 用于指定浏览器中这个被创造出来的对象的名字。你不能使用Javascript的关键字。
Scope 非常类似servlet规范中的scope。 它允许你指定这个bean在什么生命范围。选项有“application”; “session”; “request” 和“page”。scope属性是可选的。默认是“page”。
Param 被用来指定创造器的其他参数;每种构造器各有不同。例如;“new”创造器需要知道要创建的对象类型是什么(class)。
Include & exclude 允许创造器来限制类中方法的访问。一个创造器必须指定include列表或exclude列表之一。如果是include列表则暗示默认的访问策略是"拒绝";如果是exclude列表则暗示默认的访问策略是"允许"。
我们常用的create: new和spring
new
xml 代码
- <create creator=“new” javascript=“UserDwrAction” >
- <param name=“class”
- value=“com.dwr.demo.action.UserDwrAction” />
- <include method=“getAllUsers“ />
- <include method=“saveUser“ />
- create>
如果<include method=“”/>没有配置;那class内的所有方法都是被允许调用的
Spring
xml 代码
- <create creator= “spring” javascript=“spring” >
- <param name=“beanName” value=“****” />
- create>
dwr.xml -- converter
我们必须保证所有的参数都可以被转换。JDK中的多数类型已经有转换器了;但是你需要给DWR转换你的代码的权利。一般来说JavaBean的参数需要一个<convert></convert>定义。
默认情况下;如下类型不需要定义就可以转换:
所有的原生类型 boolean;int;double; 等等
原生类型的对象类型 Boolean;Integer;等等
java.lang.String
java.util.Date 和SQL中的Date
以上类型组成的数组
以上类型的集合类型 (Lists; Sets; Maps; Iterators; 等)
从DOM; XOM; JDOM 和 DOM4J中的DOM对象 (类似 Element 和 Document)
怎么在你的web应用中使用
在你的jsp页面中加入以下两行代码,这两行是必须的
你也可以把其中/[YOUR-WEBAPP]/替换成你的web页面的相对路径。
如果是JSP最好用request.getContextPath()
xml 代码
- <script src='/[YOUR-WEBAPP]/dwr/interface/[YOUR-SCRIPT].js'>
- script>
- <script src='/[YOUR-WEBAPP]/dwr/engine.js'>script>
下面这行是可选的,主要封装了一些javascript方法
<script src="/[YOUR-WEBAPP]/dwr/util.js"></script>
其他
DWR的官方文档十分详细地址:
http://getahead.org/dwr/documentation
中文wiki知识库.地址是:http://wiki.javascud.org/display/dwrcn/Home
util.js包含了一些工具函数来帮助你用javascript数据(例如从服务器返回的数据)来更新你的web页面。
你可以在DWR以外使用它,因为它不依赖于DWR的其他部分。
$()
addRows and removeAllRows
getText
getValue
getValues
setValue
setValues