第一步 导包

第二步配置 web.xml

添加如下

<!-- 配置dwr -->


    <servlet>
        <servlet-name>dwr</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</servlet-name>
        <url-pattern>/dwr/*</url-pattern>
    </servlet-mapping>

接下来配置dwr.xml

<?xml version="1.0" encoding="UTF-8"?>


<dwr xmlns="http://directwebremoting.org/schema/dwr20"
    xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
    xsi:schemaLocation="http://directwebremoting.org/schema/dwr20 
    http://directwebremoting.org/schema/dwr20/dwr20.xsd ">
    <allow> 
        <convert converter="bean" match="com.bean.User"></convert>
        <create creator="new" javascript="TestDwrBizBeanImp" scope="application">
                <param name="class" value= "com.biz.beanimp.TestDwrBizBeanImp" /> 
                <include method="getUserlist"/> 
                <include method="getUserlistParmByList"/> 
                <include method="getUserlistReturnMap"/> 
                <include method="getUserlistReturnMapParmByMap"/> 
        </create>  
    </allow>
    
<signatures>
 <![CDATA[
  import java.util.List;
  import java.util.Map;
  import com.biz.beanimp.TestDwrBizBeanImp;  
  import com.bean.User;
  TestDwrBizBeanImp.getUserlistParmByList(List<User>); 
  TestDwrBizBeanImp.getUserlistReturnMapParmByMap(Map<String,User>);
 ]]>
</signatures>
</dwr>

然后实现业务方法如下

package com.biz.beanimp;


import java.util.ArrayList;
import java.util.List;
import java.util.Map;

import com.bean.User;
import com.biz.TestDwrBiz;

public class TestDwrBizBeanImp implements TestDwrBiz{

public List<User> getUserlist()
    {
        List<User> list = new ArrayList<User>();
        User user = null;

user = new User();
        user.setName("messi");
        user.setPwd("123");
        list.add(user);

user = new User();
        user.setName("xiva");
        user.setPwd("456");
        list.add(user);

return list;
    }

public List<User> getUserlistParmByList(List<User> inlist)
    {
        List<User> list = new ArrayList<User>();
        User user = null;

user = new User();
        user.setName("messi");
        user.setPwd("123");
        list.add(user);

user = new User();
        user.setName("xiva");
        user.setPwd("456");
        list.add(user);

if (null != inlist && inlist.size() >= 1)
        {
            list.add(inlist.get(0));
        }
        return list;
    }

public Map<String, User> getUserlistReturnMap()
    {
        Map<String, User> map = new java.util.Hashtable<String, User>();
        User user = null;

user = new User();
        user.setName("messi");
        user.setPwd("123");
        map.put("m", user);

user = new User();
        user.setName("xiva");
        user.setPwd("456");
        map.put("x", user);

return map;
    }

public Map<String, User> getUserlistReturnMapParmByMap(Map<String, User> inMap)
    {
        Map<String, User> map = new java.util.Hashtable<String, User>();
        User user = null;

user = new User();
        user.setName("messi");
        user.setPwd("123");
        map.put("m", user);

user = new User();
        user.setName("xiva");
        user.setPwd("456");
        map.put("x", user);

if (null != inMap && null != inMap.get("u"))
        {
            map.put("u", inMap.get("u"));
        }

return map;
    }
}

接下来是调用页面

------jsp begin---

<%@ page language="java" import="java.util.*" pageEncoding="GBK"%>

<%
String path = request.getContextPath();
String basePath = request.getScheme()+"://"+request.getServerName()+":"+request.getServerPort()+path+"/";
%>
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">
<html>
<head>
<base href="<%=basePath%>">
<title>My JSP 'index.jsp' starting page</title>
<meta http-equiv="pragma" content="no-cache">
<meta http-equiv="cache-control" content="no-cache">
<meta http-equiv="expires" content="0">    
<meta http-equiv="keywords" content="keyword1,keyword2,keyword3">
<meta http-equiv="description" content="This is my page">
<script type='text/javascript' src='/MyCrmCopy/dwr/interface/TestDwrBizBeanImp.js'></script>
<script type='text/javascript' src='/MyCrmCopy/dwr/engine.js'></script>
<script type='text/javascript' src='/MyCrmCopy/dwr/util.js'></script>
<script type="text/javascript"> 
var callBackgetUserlist= function(data)//data是后台返回的值,名字自取,也可省略,因为JS允许
{    
//如果callBack()没有写明返回值,可以通过argments[0]拿到
for(var i=0;i<data.length;i++)   
/*对于java方法的返回值为List(Set)的情况,DWR将其转化为Object数组,传递个javascript*/
{
alert(data[i].name+":"+data[i].pwd);
alert("遍历方法2");
for(var property in data) //property为序号,从0开始
{
var bean = data[property];
alert(bean.name+":"+bean.pwd);
}
}   
function getUserlist()
{  
TestDwrBizBeanImp.getUserlist(callBackgetUserlist);//回调函数
function getUserlistParmByList()
{  
var stu = [{id:0,name:"zhangsan",pwd:"zspassword"},{id:0,name:"zhangsan",pwd:"zspassword"}];
TestDwrBizBeanImp.getUserlistParmByList(stu,callBackgetUserlistParmByList);//回调函数callBack()
function callBackgetUserlistParmByList(data)//data是后台返回的值,名字自取,也可省略,因为JS允许
{   
callBackgetUserlist(data);
//do something
}
function getUserlistReturnMap()
{   
TestDwrBizBeanImp.getUserlistReturnMap(callBackgetgetUserlistReturnMap);//回调函数callBack()
function callBackgetgetUserlistReturnMap(data)//data是后台返回的值,名字自取,也可省略,因为JS允许
{    
callBackgetUserlist(data);
//do something
}
function getUserlistReturnMapParmByMap()
{  
var stu = { "u":{name:"zhangsan",pwd:"1sa",id:1}}; 
TestDwrBizBeanImp.getUserlistReturnMapParmByMap(stu,callBackgetgetUserlistReturnMapParmByMap);//回调函数callBack()
function callBackgetgetUserlistReturnMapParmByMap(data)//data是后台返回的值,名字自取,也可省略,因为JS允许
{   
callBackgetUserlist(data);
//do something
</script>
</head>
<body> 
getUserlist  <input type="button" id="Submit" value="test" οnclick="getUserlist()"> 
getUserlistParmByList  <input type="button" id="Submit" value="test" οnclick="getUserlistParmByList()"> 
getUserlistReturnMap  <input type="button" id="Submit" value="test" οnclick="getUserlistReturnMap()">
getUserlistReturnMapParmByMap  <input type="button" id="Submit" value="test" οnclick="getUserlistReturnMapParmByMap()"> 
</body>
</html>

-------jsp end ----

这就算完了

转载于:https://www.cnblogs.com/heling/archive/2012/08/03/2622151.html

DWR重温 DWE例子 如下相关推荐

  1. 整合ext和dwr 的小例子

    第一步:写个index.jsp页面. <%@ page contentType="text/html;charset=utf-8"%> <html>     ...

  2. 微软面向初学者的机器学习课程:1.3-机器学习中的公平性

    写在前面:最近在参与microsoft/ML-For-Beginners的翻译活动,欢迎有兴趣的朋友加入(https://github.com/microsoft/ML-For-Beginners/i ...

  3. 【DWR系列01】-DWR简介及入门例子

    一.DWR简介 dwr是一个Ajax框架,官方网站:http://directwebremoting.org/dwr/,最新版本3.0.1,要求jdk1.6及以上. 如下图所示,可以通过DWR来调用J ...

  4. 一个简单的DWR入门例子

    http://di201yao.iteye.com/blog/164095 什么是DWR?     DWR是一个Open Source的 java项目.DWR可以让JavaScript调用运行在Web ...

  5. 【AJAX】DWR入门教程

    DWR(Direct Web Remoting)是一个WEB远程调用框架.利用这个框架可以让AJAX开发变得很简单.利用DWR可以在客户端利用JavaScript直接调用服务端的Java方法并返回值给 ...

  6. 《Offer一箩筐》2W字总结面试套路14问——不给例子的教程都是耍流氓!!

    01. 面试前的准备 1 准备好自我介绍 提前准备自我介绍非常有必要,这几乎是每场面试的"开场白问题".特别是受疫情影响的现在,在线面试更是绕不开这个问题. ⚠️ 自我介绍三大雷区 ...

  7. 基于注解的DWR使用

    dwr3.0支持使用注解,如果不喜欢配置dwr.xml文件,注解是个不错的方法,简单快捷. 步骤如下: 1.配置web.xml文件,需要在DwrServlet里加classes初始化参数: 1 < ...

  8. 【AJAX】DWR使用总结

    这两天学了下DWR,现在总结一下. DWR是方便使用AJAX连接JS和JAVA的的一个框架,把服务器端 Java 对象的方法公开给JavaScript 代码. 如果是用dwr2.0的jar包,还需要同 ...

  9. 重温.NET下Assembly的加载过程 ASP.NET Core Web API下事件驱动型架构的实现(三):基于RabbitMQ的事件总线...

    重温.NET下Assembly的加载过程 最近在工作中牵涉到了.NET下的一个古老的问题:Assembly的加载过程.虽然网上有很多文章介绍这部分内容,很多文章也是很久以前就已经出现了,但阅读之后发现 ...

最新文章

  1. java domain层_java框架中的controller层、dao层、domain层、service层、view层
  2. java基础 知识点
  3. winsock setsockopt 详解
  4. 《软件加密与解密》第三版学习日志二
  5. 价值上亿元的IT机房,都有哪些设备?
  6. laravel中单独获取一个错误信息的方法
  7. os.listdir的文件顺序与目录下文件顺序不一样
  8. tkinter窗口居中方法
  9. 马哥-51CTO-Linux培训-0910-程序包管理
  10. javascript中基本类型和引用类型的区别分析
  11. 报错:非介入式客户端验证规则中的验证类型名称必须唯一。下列验证类型出现重复...
  12. 自学结构体(小甲鱼c语言)
  13. cryptojs AES加密
  14. Java工程师 操作系统(四) 面试题(Day35)
  15. offsetof 详解
  16. 怎么批量修改html文件后缀,如何批量修改文件后缀名 超详细介绍
  17. .NET Core 之 七 EF Core(四)
  18. 企业采购成本管理的难题及解决方案
  19. 小米集团加入开源专利社区 OIN
  20. 制造企业发展第三方物流的思路探讨 (zt)

热门文章

  1. 【长篇连载】桌面管理演义 第八回 电脑中毒很危险 告警隔离防传染
  2. PCIE BAR空间
  3. 怎样使用Debussy+ModelSim快速查看前仿真波形
  4. Django model层 mysql_Django模型层(models.py)之模型创建
  5. Word自定义多级符号方法
  6. 怎样定义最小 可遗传神经网络
  7. Invalid icon file 原因
  8. java --String类解决面试问题
  9. java 反射加实例化内部类
  10. JSP第四课:用户注册登录设计(内置对象使用)