`

简单dwr实现

    博客分类:
  • DWR
阅读更多
昨天听论坛的同志说上海现在在流行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实现DEMO

    DWR(Direct Web Remoting)是一个web远程调用框架,利用这个框架可以让AJAX变得很简单,通过DWR可以在客户端通过JavaScript直接调用服务器的Java方法并返回值给JavaScript,整个过程就好像通过本地客户端调用一样,...

    Ajax(DWR实现例子)

    Ajax全称为"Asynchronous JavaScript and XML",是一种在无需重新加载整个网页的情况下,能够更新部分网页的技术。DWR(Direct Web ...在实际项目中,利用DWR实现Ajax通信,可以创建出动态、交互性强的网页应用。

    ext+dwr实现树形菜单源代码

    在本文中,我们将深入探讨如何使用EXT和Direct Web Remoting (DWR)技术来实现一个动态的、可编辑的树形菜单。EXT是一个强大的JavaScript库,用于构建富客户端应用程序,而DWR则是一个允许JavaScript与服务器端Java...

    dwr实现分页

    DWR的主要优点是简化了Ajax开发,使得动态更新页面内容变得更加简单。在这个场景中,我们将探讨如何使用DWR来实现分页功能,并涉及增、删、改操作。 ### 1. DWR分页基础 分页是Web应用中常见的功能,用于处理大量...

    java+dwr框架实现聊天室

    dwr(Direct Web Remoting)是一种基于Ajax技术的远程调用框架,提供了一个简单的方式来访问Java对象,实现了服务器推技术。dwr框架的主要特点是可以将Java对象暴露给客户端,实现了实时通信的功能。 二、dwr 框架...

    dwr实现的服务器推demo

    在这个"**dwr实现的服务器推demo**"中,我们看到一个实例,展示了如何利用DWR的技术来实现实时的、无需刷新的服务器推送功能。 服务器推是一种技术,它允许服务器主动地将数据发送到客户端,而不需要客户端(通常是...

    AJAX-dwr实现增删改查的示例代码

    在"AJAX-dwr实现增删改查的示例代码"中,DWR被用来构建一个简单的CRUD(Create, Read, Update, Delete)应用程序。这个示例主要帮助开发者了解如何在实际项目中运用DWR来处理页面的交互和数据操作。由于此示例不依赖...

    dwr 实现推技术 实例

    通过这个简单的点对点聊天实例,我们可以深入理解DWR如何实现反向Ajax和推送技术,以及如何在实际项目中应用。同时,这也是一个很好的起点,可以进一步扩展到群聊、文件传输等更复杂的Web交互场景。在实际开发中,...

    DWR实现AJAX验证实例

    在DWR中,AJAX的实现变得更加简单,因为DWR提供了一套完整的框架,使得开发者可以方便地在客户端和服务器之间传递数据。 **DWR验证**通常用于实现用户输入的实时检查,例如在用户输入时检查邮箱地址的有效性、...

    dwr.rar_dwr_dwr ajax_dwr 实现 联动 标签

    DWR (Direct Web Remoting) 是一个开源Java库,它允许Web应用程序在浏览器和服务器之间进行实时、异步通信,从而实现类似桌面应用的用户体验。DWR的核心功能是通过JavaScript和Java之间的远程方法调用(Remote ...

    springboot整合dwr实现js调用java方法

    首先,DWR是一个开源Java库,它为Web应用程序提供了一个简单的方法来创建富客户端应用程序。通过DWR,开发者可以在不涉及繁琐的AJAX请求和响应处理的情况下,直接在JavaScript中调用Java对象的方法,使得前端和后端...

    DWR简单实现改变一个修改一个按钮上面的值

    在本示例中,“DWR简单实现改变一个修改一个按钮上面的值”主要涉及到的知识点有: 1. **DWR基本概念**: - **Remoting**:远程过程调用,允许客户端像调用本地函数一样调用远程服务器上的方法。 - **AJAX...

    springMvc + dwr 注解 实现消息推送

    它提供了简单易用的API,允许开发者创建远程JavaScript对象,这些对象可以直接调用服务器端的Java方法,实现实时的数据更新。在DWR中,我们可以使用注解来声明可公开访问的Java方法,如@RemoteMethod。 在Spring ...

    ajax_dwr实现页面无刷新加载

    **Ajax与DWR:实现页面无刷新加载** Ajax(Asynchronous JavaScript and XML)是一种在无需重新加载整个网页的情况下,能够更新部分网页的技术。它通过在后台与服务器进行少量数据交换,使得网页实现异步更新,提高...

    DWR实现省市县三级联动

    DWR(Direct Web Remoting)是一个Java库,它允许在服务器端的Java代码和浏览器端的JavaScript之间进行简单直接的交互调用。这种交互通常是异步的,通过AJAX(Asynchronous JavaScript and XML)技术实现。DWR能够将...

    一个简单DWR例子,实现前后台不刷新页面交互

    这个简单的DWR实例展示了如何利用DWR框架来实现实时、动态的数据交换,提高用户体验。 首先,我们来理解DWR的基本工作原理。DWR通过创建一个JavaScript接口,该接口映射到服务器上的Java类和方法。当JavaScript调用...

    DWR实现聊天室demo

    **二、DWR实现聊天室的关键技术** 1. **实时推送**:DWR的ReverseAjax特性实现了服务器端向客户端的主动推送。当有新消息时,服务器可以直接调用客户端的JavaScript函数,将消息推送给用户,而无需客户端不断地发起...

    springMVC+dwr技术实现消息推送实例

    通过这个实例,你可以了解到如何利用SpringMVC处理业务逻辑,以及如何借助DWR实现从服务器到客户端的实时消息推送。理解这两个技术的结合,对于构建现代、交互性强的Web应用是非常有价值的。同时,这也是对传统HTTP...

    dwr入门简单实现示例

    DWR使得Web应用能够实现类似于桌面应用的实时交互性,提高了用户体验。本示例旨在帮助初学者理解并快速上手DWR的使用。 **一、DWR基本概念** 1. **反向Ajax (Reverse Ajax)**:DWR的核心是反向Ajax,即由服务器...

    dwr 实现2级联动

    **三、DWR实现两级联动的步骤** 1. **配置DWR**: 在服务器端,需要在web.xml中配置DWR的Servlet,并引入DWR的jar包。 2. **创建Java接口和实现**: 定义一个Java接口,包含需要被JavaScript调用的方法,然后实现这些...

Global site tag (gtag.js) - Google Analytics