DWR重温 DWE例子 如下


第一步 导包 

第二步配置 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" onclick="getUserlist()"> 
    
    getUserlistParmByList  <input type="button" id="Submit" value="test" onclick="getUserlistParmByList()"> 
    
    getUserlistReturnMap  <input type="button" id="Submit" value="test" onclick="getUserlistReturnMap()">
       
    getUserlistReturnMapParmByMap  <input type="button" id="Submit" value="test" onclick="getUserlistReturnMapParmByMap()"> 
  
  </body>
</html>

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

这就算完了

原文地址:https://www.cnblogs.com/heling/p/2622151.html