论坛首页 Web前端技术论坛

DWR介绍及应用

浏览 6243 次
精华帖 (0) :: 良好帖 (0) :: 新手帖 (0) :: 隐藏帖 (0)
作者 正文
   发表时间:2007-05-11  

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
  1. <servlet>    
  2. <servlet-name>dwr-invokerservlet-name>    
  3. <display-name>DWR Servletdisplay-name>    
  4. <servlet-class>uk.ltd.getahead.dwr.DWRServletservlet-class>    
  5. <init-param>    
  6. <param-name>debugparam-name>    
  7. <param-value>trueparam-value>    
  8. init-param>    
  9. servlet>    
  10. <servlet-mapping>    
  11. <servlet-name>dwr-invokerservlet-name>    
  12. <url-pattern>/dwr/*url-pattern>    
  13. servlet-mapping>    
xml 代码
dwr .xml
Dwr自己相关的配置信息
<p:colorscheme colors="#ffffff,#000000,#1c1c1c,#333399,#00e4a8,#ffcf01,#ff0000,#3333cc"></p:colorscheme>  
xml 代码
  1. <dwr>    
  2.   <allow>    
  3.     <create creator="new" javascript=“UserDwrAction">    
  4.       <param name="class“    
  5.              value=“com.dwr.demo.action.UserDwrAction"/>    
  6.     create>    
  7.  <convert converter=”bean”    
  8.       match=”com.dwr.demo.model.User”/>    
  9.   allow>    
  10. dwr>    
dwr.xml-- create

dwr.xml文件中的create元素的结构如下:
creatorjavascript名字是重点。

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 代码
  1. <create creator=“new” javascript=“UserDwrAction” >  
  2. <param name=“class”    
  3.     value=“com.dwr.demo.action.UserDwrAction” />  
  4. <include method=“getAllUsers“ />  
  5. <include method=“saveUser“ />    
  6. create>  

  如果<include method=“”/>没有配置;那class内的所有方法都是被允许调用的


Spring
xml 代码
  1. <create creator= “spring” javascript=“spring” >  
  2. <param name=“beanName” value=“****” />  
  3. 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 代码

  1. <script src='/[YOUR-WEBAPP]/dwr/interface/[YOUR-SCRIPT].js'>  
  2.   script>  
  3. <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

   发表时间:2007-05-13  
简单的来说,DWR是一个对AJAX的封装,它是一个框架。而YUI是一个组件库,用于呈现各种效果。
0 请登录后投票
论坛首页 Web前端技术版

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