DWR二级菜单级联

来源:互联网 发布:win7 ie修复软件 编辑:程序博客网 时间:2024/05/17 05:52

index.html

  1. <html>
  2. <script src="/dwrajax/dwr/interface/ItemsBean.js"></script>
  3. <script src="/dwrajax/dwr/engine.js"></script>
  4. <script src="/dwrajax/dwr/util.js"></script>
  5. <script language="javascript"> 
  6. function update1()
  7. {
  8.        ItemsBean.ClassList(createList1);
  9. }
  10. function createList1(data)
  11. {
  12.     DWRUtil.removeAllOptions("classid");
  13.     DWRUtil.addOptions("classid", data);
  14. }
  15. function update2()
  16. {
  17.        ItemsBean.UserList(createList2,DWRUtil.getValue("classid"));
  18. }
  19. function createList2(data)
  20. {
  21.     DWRUtil.removeAllOptions("userid");
  22.     DWRUtil.addOptions("userid", data);
  23. }
  24. </script>
  25. <head>
  26. <meta http-equiv="Content-Type" content="text/html; charset=gb2312">
  27. <title>班级和学生Ajax级联下拉菜单</title>
  28. </head>
  29. <body onload="update1()">
  30. <form name="formform">
  31.     班级<select name="classid" id="classid" onchange="javascript:update2();"></select> 
  32.     学生<select name="userid" id="userid"></select>
  33. </form>
  34. </body>
  35. </html>



ItemsBean.java

  1. package org.baiyun;
  2. import java.util.*;
  3. /**
  4.  *
  5.  * @author baiyun
  6.  */
  7. public class ItemsBean {
  8.     private String[] class1 = {"同学1","同学2","同学3","同学4","同学5","同学6"};
  9.     private String[] class2 = {"同学7","同学8","同学9","同学10"};
  10.     private String[] class3 = {"同学11","同学12","同学13","同学14","同学15","同学16","同学17"};
  11.     private String[] class4 = {"同学18","同学19","同学20"};
  12.     private String[] class5 = {"同学21","同学22","同学23","同学24","同学25","同学26"};
  13.     /** Creates a new instance of ItemsBean */
  14.     public ItemsBean() {
  15.     }
  16.     
  17.     public Map ClassList() {
  18.         Map reply = new LinkedHashMap();
  19.         reply.put("0""所有");
  20.         reply.put("1""班级1");
  21.         reply.put("2""班级2");
  22.         reply.put("3""班级3");
  23.         reply.put("4""班级4");
  24.         reply.put("5""班级5");
  25.         return reply;
  26.     }
  27.     
  28.     public Map UserList(String CLASSID) {
  29.         Map reply = new LinkedHashMap();
  30.         reply.put("0""所有");
  31.         
  32.         // 这里用数组模拟数据库查询结果。
  33.         // 真实环境中,你只要将数据库查询结果放入到reply里面就可以了。
  34.         // reply的id就是返回后下拉框的option的value,reply的value就是返回后下拉框的option的text。
  35.         // 如: sql = "select * from users where classid=?";
  36.         if(CLASSID==null || CLASSID.equals("") || CLASSID.equals("0")){
  37.             //
  38.         }else if(CLASSID.equals("1")){
  39.             int id =1;
  40.             for(int i=0;i<class1.length;i++){
  41.                 reply.put(""+id, class1[i]);
  42.                 id++;
  43.             }
  44.         }else if(CLASSID.equals("2")){
  45.             int id =1;
  46.             for(int i=0;i<class2.length;i++){
  47.                 reply.put(""+id, class2[i]);
  48.                 id++;
  49.             }
  50.         }else if(CLASSID.equals("3")){
  51.             int id =1;
  52.             for(int i=0;i<class3.length;i++){
  53.                 reply.put(""+id, class3[i]);
  54.                 id++;
  55.             }
  56.         }else if(CLASSID.equals("4")){
  57.             int id =1;
  58.             for(int i=0;i<class4.length;i++){
  59.                 reply.put(""+id, class4[i]);
  60.                 id++;
  61.             }
  62.         }else if(CLASSID.equals("5")){
  63.             int id =1;
  64.             for(int i=0;i<class5.length;i++){
  65.                 reply.put(""+id, class5[i]);
  66.                 id++;
  67.             }
  68.         }
  69.         
  70.         return reply;
  71.     }
  72. }



web.xml

  1. <?xml version="1.0" encoding="UTF-8"?>
  2. <!DOCTYPE web-app PUBLIC "-//Sun Microsystems, Inc.//DTD Web Application 2.3//EN" "http://java.sun.com/dtd/web-app_2_3.dtd">
  3. <web-app>
  4.   <servlet>
  5.     <servlet-name>dwr-invoker</servlet-name>
  6.     <display-name>DWR Servlet</display-name>
  7.     <servlet-class>uk.ltd.getahead.dwr.DWRServlet</servlet-class>
  8.     <init-param>
  9.       <param-name>debug</param-name>
  10.       <param-value>true</param-value>
  11.     </init-param>
  12.   </servlet>
  13.   <servlet-mapping>
  14.     <servlet-name>dwr-invoker</servlet-name>
  15.     <url-pattern>/dwr/*</url-pattern>
  16.   </servlet-mapping>
  17.   <welcome-file-list>
  18.     <welcome-file>index.htm</welcome-file>
  19.   </welcome-file-list>
  20. </web-app>



dwr.xml: 是让js和java直接通讯,很神奇吧~ 这就是dwr的贡献。

  1. <?xml version="1.0" encoding="gbk"?>
  2. <!DOCTYPE dwr PUBLIC
  3.     "-//GetAhead Limited//DTD Direct Web Remoting 1.0//EN"
  4.     "http://www.getahead.ltd.uk/dwr/dwr10.dtd">
  5. <dwr>
  6.   <allow>
  7.     <create creator="new" javascript="ItemsBean">
  8.       <param name="class" value="org.baiyun.ItemsBean"/>
  9.     </create>
  10.   </allow>
  11. </dwr>
原创粉丝点击