源码网商城,靠谱的源码在线交易网站 我的订单 购物车 帮助

源码网商城

纯JSP+DWR实现三级联动下拉选择菜单实现技巧

  • 时间:2022-04-27 19:43 编辑: 来源: 阅读:
  • 扫一扫,手机访问
摘要:纯JSP+DWR实现三级联动下拉选择菜单实现技巧
网上看到一些例子,对于一个简单的三级联动,都加上什么Struts, Hibernate诸如此类的框架。这个Ajax联动殊不知和这些框架有什么关系,一个小Demo干嘛整得那么大。 今天我做了一个dwr+jsp做的例子。 web.xml:
[u]复制代码[/u] 代码如下:
<?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> <servlet-class> org.directwebremoting.servlet.DwrServlet </servlet-class> <init-param> <param-name>debug</param-name> <param-value>true</param-value> </init-param> </servlet> <servlet> <servlet-name>SelectServlet</servlet-name> <servlet-class>com.action.SelectServlet</servlet-class> </servlet> <servlet-mapping> <servlet-name>dwr-invoker</servlet-name> <url-pattern>/dwr/*</url-pattern> </servlet-mapping> <servlet-mapping> <servlet-name>SelectServlet</servlet-name> <url-pattern>/select</url-pattern> </servlet-mapping> <welcome-file-list> <welcome-file>index.jsp</welcome-file> </welcome-file-list> </web-app>
dwr.xml:
[u]复制代码[/u] 代码如下:
<?xml version="1.0" encoding="UTF-8"?> <!DOCTYPE dwr PUBLIC "-//GetAhead Limited//DTD Direct Web Remoting 2.0//EN" "http://www.getahead.ltd.uk/dwr/dwr20.dtd"> <dwr> <!-- 没有它DWR什么也做不了 --> <allow> <create creator="new" javascript="menu"> <param name="class" value="com.dao.CountryDAO" /> </create> <!-- 要转换的Bean --> <convert converter="bean" match="com.vo.Country" /> <convert converter="bean" match="com.vo.Province" /> <convert converter="bean" match="com.vo.City" /> </allow> </dwr>
test.jsp:
[u]复制代码[/u] 代码如下:
<%@ page language="java" import="java.util.*,com.vo.*" pageEncoding="GBK"%> <%@ taglib uri="http://java.sun.com/jstl/core" prefix="c"%> <html> <head> <title>DWR三级联动</title> <script type='text/javascript' src='/mutiplyMenu/dwr/interface/menu.js'></script> <script type='text/javascript' src='/mutiplyMenu/dwr/engine.js'></script> <script type='text/javascript' src='/mutiplyMenu/dwr/util.js'></script> </head> <body> <script type="text/javascript"> //根据国家id查询所属省或州 function queryProvince() { var countryId = $("country").value; //默认为不选择 if(countryId == 0) { ${"province"}.options.length=0; ${"city"}.options.length=0; } else { menu.queryProvinceById(countryId,provinceCallback); } } //根据国家id查询所属省或州的回调函数 function provinceCallback(provinces) { ${"province"}.options.length=0; //每次获得新的数据的时候先把每二个下拉框架的长度清0 for(var i=0;i< provinces.length;i ++){ var value = provinces[i].id; var text = provinces[i].provinceName; var option = new Option(text, value); //根据每组value和text标记的值创建一个option对象 try{ $("province").add(option);//将option对象添加到第二个下拉框中 }catch(e){ } } //同时关联第三级 var provinceId = ${"province"}.value; menu.queryCityById(provinceId,cityCallback); } //查询所属城市 function queryCity() { var provinceId = $("province").value; menu.queryCityById(provinceId,cityCallback); } //查询所属城市回调函数 function cityCallback(citys) { //每次获得新的数据的时候先把每三个下拉框架的长度清0 ${"city"}.options.length=0; for(var i=0;i< citys.length;i ++){ var value = citys[i].id; var text = citys[i].cityName; var option = new Option(text, value); //根据每组value和text标记的值创建一个option对象 try{ $("city").add(option);//将option对象添加到第三个下拉框中 }catch(e){ } } } function change1() { queryProvince(); } function change2() { queryCity(); } </script> <div align="center"> <h3> <br> </h3> <h3> DWR三级联动演示 </h3> <!-- 我都奇怪了,我的<c>标签在这里不能用 --> <select id="country" onchange="change1();"> <option selected="selected" value="0"> 请选择 </option> <% @SuppressWarnings("unchecked") List list = (List) request.getAttribute("countrys"); for (int i = 0; i < list.size(); i++) { Country temp = (Country) list.get(i); %> <option value="<%=temp.getId()%>"><%=temp.getCountryName()%></option> <% } %> </select> <select id="province" onchange="change2();"> </select> <select id="city"> </select> </div> </body> </html>
servlet,dao就不帖了,想了解的可以去下载源码
  • 全部评论(0)
联系客服
客服电话:
400-000-3129
微信版

扫一扫进微信版
返回顶部