昨天听论坛的同志说上海现在在流行dwr和ext,我今天晚上就来研究了一下dwr,发现挺简单的,不过我还是觉得jquer简单,直接嘿嘿,废话不多说,开始~~~~~~~~
DWR(Direct Web Remoting)是一个开源的类库,可以帮助开发人员开发包含AJAX技术的网站.它可以允许在浏览器里的代码使用运行在WEB服务器上的JAVA函数,就像它就在浏览器里一样.
1.配置dwr环境
1.1修改web。xml(把这段添加进去)
web.xml
<web-app id="dwr">
<servlet>
<servlet-name>dwr-invoker</servlet-name>
<servlet-class>uk.ltd.getahead.dwr.DWRServlet</servlet-class>
</servlet>
<servlet-mapping>
<servlet-name>dwr-invoker</servlet-name>
<url-pattern>/dwr/*</url-pattern>
</servlet-mapping>
</web-app>
1.2 配置dwr.xml
dwr.xml 与web.xml同目录
<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE dwr PUBLIC "-//GetAhead Limited//DTD Direct Web Remoting 1.0//EN" "http://www.getahead.ltd.uk/dwr/dwr10.dtd">
<dwr>
<allow>
<create creator="new" javascript="dwrTest" > //这个是我们要生成的js的名字(这边也可以用spring ioc里面的对象哦,不过当然配置要适当改呵呵)
<param name="class" value="com.yourcompany.struts.action.DwrAction"/> //这个定义了我们要用ajax的javabean
<include method="save"/> //这个是我们要的javabean的ajax方法
</create>
</allow>
</dwr>
index.html
<script src='dwr/interface/dwrTest.js'></script> 这个是根据配置动态生成的(我们刚才写的配置,好好看看)
<script src='dwr/engine.js'></script> 下面两个是固定要加入的js
<script src='dwr/util.js'></script>
//自己处理的js
<script type="text/javascript">
function a(){
dwrTest.save(b); //b是回调函数(就是对返回值进行处理的函数)
}
function b(data){ //接受了数据打印出他
alert(data);
}
</script>
dwr.jar 下载放lib下
com.yourcompany.struts.action.DwrAction 下的save方法
public String save()
{
System.out.println("ok");
return "ok";
}
ok,这样一个最简单的dwr例子就完成了。我们从js里面调用了save方法,他返回了string。
好了,这样最难的配置完成了,其他的比如他的方法有多个参数啊,返回值是list集合(集合里面是javabean的,很常见哦),我也帮大家贴出来把
首先是有多个参数的,我觉得参数一般不会太复杂,一般已简单类型为主,如果为一些javabean之类的参数,要修改配置文件,大家可以自己找下,我就说最简单的嘿嘿
public String save(int name,String password)
{
System.out.println("ok");
System.out.println(name);
System.out.println(password);
}
首先先来修改save方法,然后就要改下js代码了
<script type="text/javascript">
function a(){
//我传过去的参数为数字1,和字符串b,最后那个为回调函数b,大家不能混淆哦,回调函数是写在最后面的,切忌(其实我也是通过firebug看他生成的js才知道的呵呵)
dwrTest.save(1,'b',b);
}
function b(data){
alert(data);
}
</script>
ok,传递参数弄好了,简单把,呵呵,继续来就是返回list集合了,如果集合里面包含的是基本类型就不用修改配置文件,如果是javabean就要修改下配置文件哦(我觉得返回list这些很像返回json数据,大家可以去理解一下json数据,也是现在比较火的传输数据格式)
dwr.xml
<dwr>
<allow>
<create creator="new" javascript="dwrTest" >
<param name="class" value="com.yourcompany.struts.action.DwrAction"/>
<include method="save"/>
</create>
<convert match="cn.ghp.vo.UserVo" converter="bean"></convert> //返回list里面的包含的对象,我们要在这边定义他一下
</allow>
</dwr>
cn.ghp.vo.UserVo
package cn.ghp.vo;
public class UserVo {
private String name;
private String password;
public String getName() {
return name;
}
public void setName(String name) {
this.name = name;
}
public String getPassword() {
return password;
}
public void setPassword(String password) {
this.password = password;
}
}
save方法也要改一下
public ArrayList save(String name,String password)
{
System.out.println("ok");
System.out.println(name);
System.out.println(password);
ArrayList list=new ArrayList();
for (int i = 0; i < 3; i++) {
UserVo user=new UserVo();
user.setName("a"+i);
user.setPassword("p"+i);
list.add(user);
}
return list;
}
最后是js代码了
<script type="text/javascript">
function a(){
dwrTest.save('a','b',b);
}
function b(data){
var out="";
for(var i=0;i<data.length;i++){
out+=data.name+" "+data.password+"\n" ;
}
alert(out);
}
</script>
发现DWR和spring结合非常简单:
<create creator="spring" javascript="UserManager">
<param name="beanName" value="ajaxUserService"/>
<include method="findByUser"/>
<include method="findAllUser"/>
</create>
实际上,最主要的地方就是creator="spring",这里的ajaxUserService就是sping的service层bean
分享到:
相关推荐
DWR(Direct Web Remoting)是一个web远程调用框架,利用这个框架可以让AJAX变得很简单,通过DWR可以在客户端通过JavaScript直接调用服务器的Java方法并返回值给JavaScript,整个过程就好像通过本地客户端调用一样,...
Ajax全称为"Asynchronous JavaScript and XML",是一种在无需重新加载整个网页的情况下,能够更新部分网页的技术。DWR(Direct Web ...在实际项目中,利用DWR实现Ajax通信,可以创建出动态、交互性强的网页应用。
在本文中,我们将深入探讨如何使用EXT和Direct Web Remoting (DWR)技术来实现一个动态的、可编辑的树形菜单。EXT是一个强大的JavaScript库,用于构建富客户端应用程序,而DWR则是一个允许JavaScript与服务器端Java...
DWR的主要优点是简化了Ajax开发,使得动态更新页面内容变得更加简单。在这个场景中,我们将探讨如何使用DWR来实现分页功能,并涉及增、删、改操作。 ### 1. DWR分页基础 分页是Web应用中常见的功能,用于处理大量...
dwr(Direct Web Remoting)是一种基于Ajax技术的远程调用框架,提供了一个简单的方式来访问Java对象,实现了服务器推技术。dwr框架的主要特点是可以将Java对象暴露给客户端,实现了实时通信的功能。 二、dwr 框架...
在这个"**dwr实现的服务器推demo**"中,我们看到一个实例,展示了如何利用DWR的技术来实现实时的、无需刷新的服务器推送功能。 服务器推是一种技术,它允许服务器主动地将数据发送到客户端,而不需要客户端(通常是...
在"AJAX-dwr实现增删改查的示例代码"中,DWR被用来构建一个简单的CRUD(Create, Read, Update, Delete)应用程序。这个示例主要帮助开发者了解如何在实际项目中运用DWR来处理页面的交互和数据操作。由于此示例不依赖...
通过这个简单的点对点聊天实例,我们可以深入理解DWR如何实现反向Ajax和推送技术,以及如何在实际项目中应用。同时,这也是一个很好的起点,可以进一步扩展到群聊、文件传输等更复杂的Web交互场景。在实际开发中,...
在DWR中,AJAX的实现变得更加简单,因为DWR提供了一套完整的框架,使得开发者可以方便地在客户端和服务器之间传递数据。 **DWR验证**通常用于实现用户输入的实时检查,例如在用户输入时检查邮箱地址的有效性、...
DWR (Direct Web Remoting) 是一个开源Java库,它允许Web应用程序在浏览器和服务器之间进行实时、异步通信,从而实现类似桌面应用的用户体验。DWR的核心功能是通过JavaScript和Java之间的远程方法调用(Remote ...
首先,DWR是一个开源Java库,它为Web应用程序提供了一个简单的方法来创建富客户端应用程序。通过DWR,开发者可以在不涉及繁琐的AJAX请求和响应处理的情况下,直接在JavaScript中调用Java对象的方法,使得前端和后端...
在本示例中,“DWR简单实现改变一个修改一个按钮上面的值”主要涉及到的知识点有: 1. **DWR基本概念**: - **Remoting**:远程过程调用,允许客户端像调用本地函数一样调用远程服务器上的方法。 - **AJAX...
它提供了简单易用的API,允许开发者创建远程JavaScript对象,这些对象可以直接调用服务器端的Java方法,实现实时的数据更新。在DWR中,我们可以使用注解来声明可公开访问的Java方法,如@RemoteMethod。 在Spring ...
**Ajax与DWR:实现页面无刷新加载** Ajax(Asynchronous JavaScript and XML)是一种在无需重新加载整个网页的情况下,能够更新部分网页的技术。它通过在后台与服务器进行少量数据交换,使得网页实现异步更新,提高...
DWR(Direct Web Remoting)是一个Java库,它允许在服务器端的Java代码和浏览器端的JavaScript之间进行简单直接的交互调用。这种交互通常是异步的,通过AJAX(Asynchronous JavaScript and XML)技术实现。DWR能够将...
这个简单的DWR实例展示了如何利用DWR框架来实现实时、动态的数据交换,提高用户体验。 首先,我们来理解DWR的基本工作原理。DWR通过创建一个JavaScript接口,该接口映射到服务器上的Java类和方法。当JavaScript调用...
**二、DWR实现聊天室的关键技术** 1. **实时推送**:DWR的ReverseAjax特性实现了服务器端向客户端的主动推送。当有新消息时,服务器可以直接调用客户端的JavaScript函数,将消息推送给用户,而无需客户端不断地发起...
通过这个实例,你可以了解到如何利用SpringMVC处理业务逻辑,以及如何借助DWR实现从服务器到客户端的实时消息推送。理解这两个技术的结合,对于构建现代、交互性强的Web应用是非常有价值的。同时,这也是对传统HTTP...
DWR使得Web应用能够实现类似于桌面应用的实时交互性,提高了用户体验。本示例旨在帮助初学者理解并快速上手DWR的使用。 **一、DWR基本概念** 1. **反向Ajax (Reverse Ajax)**:DWR的核心是反向Ajax,即由服务器...
**三、DWR实现两级联动的步骤** 1. **配置DWR**: 在服务器端,需要在web.xml中配置DWR的Servlet,并引入DWR的jar包。 2. **创建Java接口和实现**: 定义一个Java接口,包含需要被JavaScript调用的方法,然后实现这些...