论坛首页 Web前端技术论坛

dwr 框架的配置

浏览 4220 次
精华帖 (0) :: 良好帖 (0) :: 新手帖 (0) :: 隐藏帖 (0)
作者 正文
   发表时间:2010-03-23   最后修改:2010-03-23
DWR

什么是DWR(Direct Web Remote)

DWR是一种AJAX解决方案!

 

DWR包括一个java库,以及一套javascript,使得我们可以用一种非常简单的方式,在页面上使用javascript直接调用后台的java对象!

DWR架构

 

DWRjavascript库包括几个部分:dwrjavascript引擎(即对AJAX调用的封装)、dwr提供的一些非常有用的辅助javascript函数库、以及dwr自动帮我们生成的专门用于调用后台JavaBean方法的javascript库!

 

Dwr在运行的时候,动态生成一个javascript库,这个库是对后台javabean调用的封装,我们可以直接使用这个库来实现直接调用JavaBean的目的!

 

注意:是在运行的时候动态生成!

 

下面我们来看看如何安装和使用(基于DWR2.x版本):

如何下载、安装与使用?

官方网址: http://getahead.org/dwr

 

1、  下载dwr.jar,将其加入web-inf/lib目录

2、  修改web.xml文件,添加DWRServlet的映射

<servlet>
    <servlet-name>dwr-invoker</servlet-name>
    <servlet-class>org.directwebremoting.servlet.DwrServlet</servlet-class>
    <init-param>
      <param-name>debug</param-name>
      <param-value>true</param-value>
    </init-param>
  </servlet>

  <servlet-mapping>
    <servlet-name>dwr-invoker</servlet-name>
    <url-pattern>/dwr/*</url-pattern>
  </servlet-mapping>

 

 

这个配置的意思是,要创建的是Test1对象的javascript库,而且这个库的名字叫test1,同时,这也是我们在JSP页面上调用这个对象的时候所使用的名称,请看下面的JavaBean代码和JSP实例:

 

4、下面是Test1这个JavaBean的源代码:

package com.ysen.dwr;


public class Test1 {

	public String sayHello(String name){
		return "你好,"+name;
	}

}

 

5、在JSP中的使用!

<%@ page language="java" contentType="text/html; charset=GB18030"
    pageEncoding="GB18030"%>
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">
<html>
<head>
<meta http-equiv="Content-Type" content="text/html; charset=GB18030">
<script type="text/javascript" src="dwr/engine.js"></script>
<script type="text/javascript" src="dwr/util.js"></script>
<script type="text/javascript" src="dwr/interface/test1.js"></script>
<title>Insert title here</title>
<script type="text/javascript">
function sayHello(){
	test1.sayHello("李四ddd",
		function(data){
			alert(data);
		}
	);
}
</script>
</head>
<body>
<a href="#" onclick="sayHello()">Test1</a>
</body>
</html>

 

让我们简单看一下这个JSP文件:首先引入DWR中的两个核心javascript库:engine.jsutil.js,它们分别是dwr中的核心引擎库和辅助工具函数库!

 

第三个引入的dwr/interface/test1.js,实际上这个文件并不存在,这是由dwr在运行的时候动态生成的!test1这个名称,跟dwr.xml文件中配置的对应对象的javascript属性一致!

 

而且,我们在使用的时候,直接使用test1这个名称,作为这个对象的引用。直接调用这个对象的方法:sayHello,这个方法的名称必须与JavaBean中的方法名称一致!

 

sayHello方法有一个参数,同时返回一个值。我们可以直接传递参数,同时指定一个javascript函数来处理这个返回值(如上例所示)。

 

l  如何传递参数

n  如果要调用的方法有参数,则将参数放在前面

l  如何处理返回值

n  定义一个函数来处理返回值,这个函数有一个参数,就是JavaBean方法的返回值

 

 

 

   发表时间:2010-03-23  
你这个讲得很详细,但是少了一步吧
0 请登录后投票
   发表时间:2010-03-23  
robin_hood 写道
你这个讲得很详细,但是少了一步吧

请指教
0 请登录后投票
   发表时间:2010-04-07  
是不是还有个DWR.XML的配置文件啊
0 请登录后投票
   发表时间:2010-04-16  
willamsccd 写道
是不是还有个DWR.XML的配置文件啊

嗯,少了个xml配置!
0 请登录后投票
论坛首页 Web前端技术版

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