java实现的二级联动菜单效果_java

本文实例讲述了java实现的二级联动菜单效果。分享给大家供大家参考,具体如下:

JSP代码:

<%@ page language="java" pageEncoding="UTF-8"%>
<html>
  <head>
    <title>二级菜单联动演示</title>
    <script type="text/javascript">
  var req;
  window.onload=function()
  {//页面加载时的函数
  }
  function Change_Select(){//当第一个下拉框的选项发生改变时调用该函数
   var province = document.getElementById('province').value;
   var url = "select?id="+ escape(province);
   if(window.XMLHttpRequest){
    req = new XMLHttpRequest();
   }else if(window.ActiveXObject){
    req = new ActiveXObject("Microsoft.XMLHTTP");
   }
   if(req){
    req.open("GET",url,true);
     //指定回调函数为callback
    req.onreadystatechange = callback;
    req.send(null);
   }
  }
  //回调函数
  function callback(){
   if(req.readyState ==4){
    if(req.status ==200){
     parseMessage();//解析XML文档
    }else{
     alert("不能得到描述信息:" + req.statusText);
    }
   }
  }
  //解析返回xml的方法
  function parseMessage(){
   var xmlDoc = req.responseXML.documentElement;//获得返回的XML文档
   var xSel = xmlDoc.getElementsByTagName('select');
   //获得XML文档中的所有<select>标记
   var select_root = document.getElementById('city');
   //获得网页中的第二个下拉框
   select_root.options.length=0;
   //每次获得新的数据的时候先把每二个下拉框架的长度清0
   for(var i=0;i<xSel.length;i++){
    var xValue = xSel[i].childNodes[0].firstChild.nodeValue;
    //获得每个<select>标记中的第一个标记的值,也就是<value>标记的值
    var xText = xSel[i].childNodes[1].firstChild.nodeValue;
    //获得每个<select>标记中的第二个标记的值,也就是<text>标记的值
    var option = new Option(xText, xValue);
    //根据每组value和text标记的值创建一个option对象
    try{
     select_root.add(option);//将option对象添加到第二个下拉框中
    }catch(e){
    }
   }
  }
 </script>
  </head>
  <body>
    <div align="center">
      <form name="form1" method="post" action="">
        <table width="70%" border="0" cellspacing="0" cellpadding="0">
          <tr>
            <td align="center">
              二级联动示例
            </td>
          </tr>
          <tr>
            <td>
              <select name="province" id="province" onChange="Change_Select()">
                <!–第一个下拉菜单–>
                <option value="0">
                  请选择
                </option>
                <option value="1">
                  北京
                </option>
                <option value="2">
                  天津
                </option>
                <option value="3">
                  山东
                </option>
              </select>
              <select name="city" id="city">
                <!–第二个下拉菜单–>
                <option value="0">
                  请选择
                </option>
              </select>
            </td>
          </tr>
          <tr>
            <td>
            </td>
          <tr>
        </table>
      </form>
    </div>
  </body>
</html>

Java代码:

package com;
import java.io.IOException;
import javax.servlet.ServletException;
import javax.servlet.http.HttpServlet;
import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse;
/***
 *
 * @author zdw
 *
 */
public class SelectServlet extends HttpServlet
{
  private static final long serialVersionUID = 1L;
  public SelectServlet()
  {
    super();
  }
  public void destroy()
  {
    super.destroy();
  }
  public void doGet(HttpServletRequest request, HttpServletResponse response)
      throws ServletException, IOException
  {
//    response.setCharacterEncoding("GBK");
    response.setContentType("text/xml");
    response.setHeader("Cache-Control", "no-cache");
    request.setCharacterEncoding("GBK");
    response.setCharacterEncoding("UTF-8");
    String targetId = request.getParameter("id").toString();
    System.out.println(targetId);
    // 获得请求中参数为id的值
    String xml_start = "<selects>";
    String xml_end = "</selects>";
    String xml = "";
    if (targetId.equalsIgnoreCase("0"))
    {
      xml = "<select><value>0</value><text>请选择</text></select>";
    } else if (targetId.equalsIgnoreCase("1"))
    {
      xml = "<select><value>1</value><text>昌平</text></select>";
      xml += "<select><value>2</value><text>丰台</text></select>";
      xml += "<select><value>3</value><text>海淀</text></select>";
      xml += "<select><value>4</value><text>朝阳</text></select>";
    } else if (targetId.equalsIgnoreCase("2"))
    {
      xml = "<select><value>1</value><text>塘沽区</text></select>";
      xml += "<select><value>2</value><text>汉沽区</text></select>";
      xml += "<select><value>3</value><text>大港区</text></select>";
      xml += "<select><value>4</value><text>东丽区</text></select>";
    } else
    {// 如果是3,则返回下面的字符
      xml = "<select><value>1</value><text>济南</text></select>";
      xml += "<select><value>2</value><text>青岛</text></select>";
      xml += "<select><value>3</value><text>淄博</text></select>";
      xml += "<select><value>4</value><text>枣庄</text></select>";
    }
    String last_xml = xml_start + xml + xml_end;
    response.getWriter().write(last_xml);
  }
  public void doPost(HttpServletRequest request, HttpServletResponse response)
      throws ServletException, IOException
  {
    doGet(request, response);
  }
  public void init() throws ServletException
  {
  }
}

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>SelectServlet</servlet-name>
    <servlet-class>com.SelectServlet</servlet-class>
  </servlet>
  <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>

更多java相关内容感兴趣的读者可查看本站专题:《Java数据结构与算法教程》、《Java操作DOM节点技巧总结》、《Java文件与目录操作技巧汇总》和《Java缓存操作技巧汇总》

希望本文所述对大家java程序设计有所帮助。

以上是小编为您精心准备的的内容,在的博客、问答、公众号、人物、课程等栏目也有的相关内容,欢迎继续使用右上角搜索按钮进行搜索java
二级联动菜单
ajax实现二级联动菜单、js实现二级联动菜单、php 实现二级联动菜单、excel二级联动菜单、js二级联动菜单,以便于您获取更多的相关知识。

时间: 2024-08-04 11:44:05

java实现的二级联动菜单效果_java的相关文章

基于Javascript实现二级联动菜单效果_javascript技巧

本文实例为大家分享了Javascript实现二级联动菜单效果的对应代码,具体内容如下 效果图如下: 具体实现步骤如下: 1.所用js代码如下: <script type="text/javascript"> var arr_province=["请选择省份/城市","北京市","上海市","天津市","河南省","山东省","河北省"]

php+mysql实现的二级联动菜单效果详解_php技巧

本文实例讲述了php+mysql实现的二级联动菜单效果.分享给大家供大家参考,具体如下: <!--php+mysql二级联动--> <html> <head> <meta http-equiv="Content-Type" content="text/html; charset=gb2312" /> <title>生成学院专业级联下拉菜单测试 </title> </head> <

仿人才网的二级联动菜单效果实例

提示:您可以先修改部分代码再运行 仿人才网的二级联动菜单效果实例 → 如果您的问题无法归入任何子分类,您可以只选择一级分类 . 请选择正确的分类,以使问题尽快得到解答. 提示:您可以先修改部分代码再运行

我的ASP之旅:二级联动菜单制作

菜单|联动菜单     这个问题其实已经蛮老了,不过作为刚学ASP3个月的我来说,还是有必要写下来强化自己的基础知识.     就拿最常用的"省市下拉列表联动"作为例子吧!     在我们制作网站会员注册信息时,一般会涉及到填写自己所在省/市,如果用input或textarea做成填写形式不太理想.所以大部分网站都会选择联动下来列表形式,做起来也不算很复杂,同时看上去也很轻松.         具体做法如下:         1.设计数据库         我们选用Access数据库.

javascript读取Xml文件做一个二级联动菜单示例

 这篇文章主要介绍了使用javascript中读取Xml文件做成的一个二级联动菜单,需要的朋友可以参考下  代码如下: <!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">  <html>  <head>  <title>menu2level.html</title>  <meta http-equiv="content-type&quo

js实现简单的联动菜单效果_javascript技巧

本文实例讲述了js实现简单的联动菜单效果.分享给大家供大家参考.具体如下: 这是一个最简单的js联动菜单代码,在DW里可以自动生成,不想在DW里生成的话,把此份代码拷贝下拉修改也可以.网页上常用到一种Select联动菜单. 运行效果截图如下: 在线演示地址如下: http://demo.jb51.net/js/2015/js-select-ld-menu-codes/ 具体代码如下: <html> <head> <title>简单的Select联动菜单代码</ti

jsp从数据库获取数据填充下拉框实现二级联动菜单的方法_JSP编程

本文实例讲述了jsp从数据库获取数据填充下拉框实现二级联动菜单的方法.分享给大家供大家参考,具体如下: 项目告一段落,现在将遇到的比较实用的东西记录下来,写了多遍了,谨记于此,以备查看! 1.首先在数据库中获取第一个下拉框的数据: <s:select listKey="tsFrom" id="t_tsfrom" cssClass="required" listValue="tsFrom" cssStyle="w

我的ASP之旅—二级联动菜单制作

菜单|联动菜单|菜单|联动菜单  这个问题其实已经蛮老了,不过作为刚学ASP3个月的我来说,还是有必要写下来强化自己的基础知识.         就拿最常用的"省市下拉列表联动"作为例子吧!         在我们制作网站会员注册信息时,一般会涉及到填写自己所在省/市,如果用input或textarea做成填写形式不太理想.所以大部分网站都会选择联动下来列表形式,做起来也不算很复杂,同时看上去也很轻松.         具体做法如下:         1.设计数据库         我

js下拉框二级关联菜单效果代码具体实现

这篇文章介绍了js下拉框二级关联菜单效果代码具体实现,有需要的朋友可以参考一下   复制代码 代码如下:  <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd"> <html xmlns="http://www.w3.org/1999/xhtml&quo