手机
当前位置:查字典教程网 >编程开发 >JSP教程 >纯JSP+DWR实现三级联动下拉选择菜单实现技巧
纯JSP+DWR实现三级联动下拉选择菜单实现技巧
摘要:网上看到一些例子,对于一个简单的三级联动,都加上什么Struts,Hibernate诸如此类的框架。这个Ajax联动殊不知和这些框架有什么关...

网上看到一些例子,对于一个简单的三级联动,都加上什么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>

<>

<allow>

<create creator="new" javascript="menu">

<param name="class" value="com.dao.CountryDAO" />

</create>

<>

<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='http://www.jb51.netmutiplyMenu/dwr/engine.js'></script>

<script type='text/javascript' src='http://www.jb51.netmutiplyMenu/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>

<>

<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就不帖了,想了解的可以去下载源码

【纯JSP+DWR实现三级联动下拉选择菜单实现技巧】相关文章:

Java从服务器上获取时间动态显示在jsp页面实现思路

实现jsp验证码的简单小例子

JSP 自定义标签之一 简单实例

JSP中图片验证是如何实现

JSP实例 服务器端判断表单是否重复提交

JSP for循环中判断点击的是哪个按钮

用JSP编写文件上传

java AJAX实现级联下拉框

jstl实现在jsp中动态添加下拉列表项

深入讲解JSP 2.0下的动态内容缓存技术

精品推荐
分类导航