DWR 实现联动的简单小实例

来源:互联网 发布:维普数据库的同义词 编辑:程序博客网 时间:2024/05/18 09:19

 

首先,将dwr.jar放到web-inf/lib中

1)web.xml中:

<?xml version="1.0" encoding="UTF-8"?>
<web-app version="2.4"
 xmlns="http://java.sun.com/xml/ns/j2ee"
 xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
 xsi:schemaLocation="http://java.sun.com/xml/ns/j2ee
 http://java.sun.com/xml/ns/j2ee/web-app_2_4.xsd">
    <servlet>
        <servlet-name>dwr-invoker</servlet-name>
        <display-name>DWR Servlet</display-name>
        <servlet-class>uk.ltd.getahead.dwr.DWRServlet</servlet-class>
        <init-param>
            <param-name>debug</param-name>
            <param-value>false</param-value>
        </init-param>
    </servlet>
    <servlet-mapping>
        <servlet-name>dwr-invoker</servlet-name>
        <url-pattern>/dwr/*</url-pattern>
    </servlet-mapping>
</web-app>

 

2)新建一个与web.xml同级的dwr.xml:

<!DOCTYPE dwr PUBLIC "-//GetAhead Limited//DTD Direct Web Remoting 2.0//EN" "http://getahead.org/dwr//dwr20.dtd">

<dwr>
  <allow>
   <create creator="new" javascript="Demo">
      <param name="class" value="GetDate"/>
    </create>  
    <create creator="new" javascript="List">
      <param name="class" value="ListTest"/>
    </create>
  </allow>
</dwr>

3)前台页面dyn.jsp:

<html>
  <head>
  <meta http-equiv="Content-Type" content="text/html; charset=UTF-8" />
  <script src='dwr/interface/List.js'></script>
  <script src='dwr/engine.js'></script>
  <script src="dwr/util.js"></script>
  <script language="javascript">
    function updateClass() {
      List.getClassList(createClass);
    }
    function createClass(data) {
      DWRUtil.removeAllOptions("classid");
      DWRUtil.addOptions("classid", data);
    }
    function updateUser() {
      List.getUserList(DWRUtil.getValue("classid"),createUser);
    }
    function createUser(data) {
      DWRUtil.removeAllOptions("userid");
      DWRUtil.addOptions("userid", data);
    }
  </script>
    <title></title>
  </head>
  <body onload="updateClass()">
    Class:<select name="classid" id="classid" onchange="javascript:updateUser();"></select><br>
    User:<select name="userid" id="userid"></select>
  </body>
</html>


4)后台java文件:


import java.util.LinkedHashMap;
import java.util.Map;

public class ListTest {

    public Map getClassList() {
        Map map = new LinkedHashMap();
        map.put("0", "请选择");
        map.put("1", "班级一");
        map.put("2", "班级二");
        map.put("3", "班级三");
        return map;
    }

    public Map getUserList(String id) {
        Map map = new LinkedHashMap();
        if(id.equals("1")) {
            map.put("1", "同学一");
            map.put("2", "同学二");
            map.put("3", "同学三");           
        } else if(id.equals("2")) {
            map.put("4", "同学四");
            map.put("5", "同学五");
            map.put("6", "同学六");           
        } else if(id.equals("3")) {
            map.put("7", "同学七");
            map.put("8", "同学八");
            map.put("9", "同学九");
        } else {
            map.put("", "请选择");
        }
        return map;
    }
}

原创粉丝点击