• 企业400电话
  • 微网小程序
  • AI电话机器人
  • 电商代运营
  • 全 部 栏 目

    企业400电话 网络优化推广 AI电话机器人 呼叫中心 网站建设 商标✡知产 微网小程序 电商运营 彩铃•短信 增值拓展业务
    纯JSP+DWR实现三级联动下拉选择菜单实现技巧
    网上看到一些例子,对于一个简单的三级联动,都加上什么Struts, Hibernate诸如此类的框架。这个Ajax联动殊不知和这些框架有什么关系,一个小Demo干嘛整得那么大。

    今天我做了一个dwr+jsp做的例子。
    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>
    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:
    复制代码 代码如下:

    ?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:
    复制代码 代码如下:

    %@ 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就不帖了,想了解的可以去下载源码
    您可能感兴趣的文章:
    • vuejs实现下拉框菜单选择
    • JS实现点击下拉菜单把选择的内容同步到input输入框内的实例
    • javascript实现日期三级联动下拉框选择菜单
    • 使用Javascript实现选择下拉菜单互移并排序
    • 基于javascript实现全国省市二级联动下拉选择菜单
    • js模拟淘宝网的多级选择菜单实现方法
    • js实现的全国省市二级联动下拉选择菜单完整实例
    • js选择并转移导航菜单示例代码
    • javascript 三级下拉选择菜单Levels对象
    • js实现圆形菜单选择器
    上一篇:JSP中实现系统登录后的退出原理及代码
    下一篇:jsp include引用非本级目录网页实现代码
  • 相关文章
  • 

    © 2016-2020 巨人网络通讯 版权所有

    《增值电信业务经营许可证》 苏ICP备15040257号-8

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