首先在WebContent目录下新建一个目录dwr,在该文件夹在存放 engine.js 和 util.js
1.在web.xml中进行配置
<?xml version="1.0" encoding="UTF-8"?>
<web-app xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns="http://java.sun.com/xml/ns/javaee" xmlns:web="http://java.sun.com/xml/ns/javaee/web-app_2_5.xsd" xsi:schemaLocation="http://java.sun.com/xml/ns/javaee http://java.sun.com/xml/ns/javaee/web-app_2_5.xsd" id="WebApp_ID" version="2.5">
<display-name>dwrDemo</display-name>
<servlet>
<servlet-name>dwr</servlet-name>
<servlet-class>uk.ltd.getahead.dwr.DWRServlet</servlet-class>
<init-param>
<param-name>debug</param-name>
<param-value>true</param-value>
</init-param>
</servlet>
<servlet-mapping>
<servlet-name>dwr</servlet-name>
<url-pattern>/dwr/*</url-pattern>
</servlet-mapping>
</web-app>
2.bean类的创建
package com.daizhaoyun.bean;
public class City {
private int id;
private String name;
public City() {
}
public City(int id, String name) {
super();
this.id = id;
this.name = name;
}
public int getId() {
return id;
}
public void setId(int id) {
this.id = id;
}
public String getName() {
return name;
}
public void setName(String name) {
this.name = name;
}
}
package com.daizhaoyun.bean;
import java.util.ArrayList;
import java.util.List;
public class Province {
private int id;
private String name;
private List<City> cities = new ArrayList<City>();
public Province(){
}
public int getId() {
return id;
}
public void setId(int id) {
this.id = id;
}
public String getName() {
return name;
}
public void setName(String name) {
this.name = name;
}
public List<City> getCities() {
return cities;
}
public void setCities(List<City> cities) {
this.cities = cities;
}
}
3.核心类的创建
package com.daizhaoyun.ajaxservice;
import java.util.ArrayList;
import java.util.List;
import com.daizhaoyun.bean.City;
import com.daizhaoyun.bean.Province;
public class ProvinceService {
private List<Province> provinces = new ArrayList<Province>();
/**
* 根据省份id,获取城市列表
* @param id
* @return
*/
public List<City> getCitysByProvinceId(int id) {
for(Province p: provinces){
if(p.getId()==id){
return p.getCities();
}
}
return null;
}
public ProvinceService(){
Province hubei = new Province();
hubei.setId(1000);
hubei.setName("湖北省");
hubei.getCities().add(new City(1001, "武汉市"));
hubei.getCities().add(new City(1002, "荆州市"));
hubei.getCities().add(new City(1003, "黄石市"));
Province hunan = new Province();
hunan.setId(2000);
hunan.setName("湖南省");
hunan.getCities().add(new City(2001, "长沙市"));
hunan.getCities().add(new City(2002, "岳阳市"));
hunan.getCities().add(new City(2003, "益阳市"));
provinces.add(hubei);
provinces.add(hunan);
}
public List<Province> getProvinces(){
return provinces;
}
}
4.dwr.xml的配置
<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE dwr PUBLIC "-//GetAhead Limited//DTD Direct Web Remoting 1.0//EN" "http://www.getahead.ltd.uk/dwr/dwr10.dtd">
<dwr>
<allow>
<create javascript="ProvinceService" creator="new">
<param name="class" value="com.daizhaoyun.ajaxservice.ProvinceService"></param>
</create>
<convert match="com.daizhaoyun.bean.City" converter="bean">
<param name="include" value="id,name"></param>
</convert>
<convert match="com.daizhaoyun.bean.Province" converter="bean">
<param name="include" value="id,name,cities"></param>
</convert>
</allow>
</dwr>
5.页面的设计
<%@ page language="java" contentType="text/html; charset=UTF-8"
pageEncoding="UTF-8"%>
<!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
<html>
<head>
<meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
<title>Insert title here</title>
<script type="text/javascript" src="dwr/engine.js"></script>
<script type="text/javascript" src="dwr/util.js"></script>
<script type="text/javascript" src="dwr/interface/ProvinceService.js"></script>
<script type="text/javascript">
window.onload=function(){
ProvinceService.getProvinces(callBackFillProvince);
};
function callBackFillProvince(data){
DWRUtil.removeAllOptions("province");
DWRUtil.addOptions("province",data,"id","name");
refreshCity($("province").value);
}
function refreshCity(provinceId){
ProvinceService.getCitysByProvinceId(provinceId,callBackFillCity);
}
function callBackFillCity(data){
DWRUtil.removeAllOptions("city");
DWRUtil.addOptions("city",data,"id","name");
}
</script>
</head>
<body>
省份:<select name="province" id="province" onchange="refreshCity(this.value)"></select>
城市:<select name="city" id="city"></select>
</body>
</html>
分享到:
相关推荐
在介绍的省市县三级联动的例子中,通过DWR与AJAX的结合使用,可以实现用户在选择一个省级别之后,页面能够动态地加载并显示该省份下属的所有市级选项。同样地,再选择一个市级之后,页面能够加载并显示该市下属的...
【标题】"省市县联动,DWR Hibernate,MySQL"涉及的是三个主要的IT技术领域:地理信息处理、Web服务和数据库管理。在这个场景下,它们共同构建了一个动态、实时的数据交互系统,通常用于构建中国的行政区划信息查询...
本项目为基于Java和Hibernate框架开发的省市县联动选择框源码,包含33个文件,包括10个Java源文件、6个XML配置文件、2个Git忽略文件以及相应的JSP和脚本文件。该系统采用DWR技术实现省市县数据的动态加载,适用于...
标题 "DWR实现省市县三级联动小例子" 暗示了这个压缩包可能包含一个使用Direct Web Remoting (DWR) 技术构建的示例项目,该示例展示了如何实现在网页上进行省、市、县三级联动选择的功能。这种功能在很多中国的网站...
本文将介绍如何使用Direct Web Remoting (DWR) 在Struts、Spring和Hibernate集成的环境中实现省市区三级联动效果。首先,我们理解DWR是一个Java库,它允许Web应用程序实现实时双向通信,即AJAX功能,使得前端...
- **设计JSP页面**:构建HTML和JavaScript,实现下拉菜单的联动效果,通过DWR调用后台Action的方法获取数据。 - **测试与调试**:确保在Eclipse中运行项目,验证三级联动功能是否正常工作,同时进行必要的错误检查...
标题 "dwr省市区三级级联" 涉及到的是一个前端开发中的常见问题,即如何实现省市区的三级联动效果。这个标题暗示我们这是一个使用Direct Web Remoting (DWR) 技术来实现的功能,它允许JavaScript与服务器端Java代码...
自己写的三级联动源码,欢迎下载 具体请看我的blog: http://blog.csdn.net/lingnnhym/article/details/7035405 http://blog.csdn.net/lingnnhym/article/details/7035545
【实例讲解:利用DWR+Spring实现省市网点联动】 在Web开发中,用户界面的交互性和用户体验至关重要。省市网点联动是一种常见的功能,它允许用户在选择省份时自动更新城市列表,选择城市时再更新区县列表,使得用户...
在本项目“struts2+dwr实现省市县三级联动”中,主要目标是构建一个用户界面,当用户选择一个省份时,市和县的下拉列表会自动更新,展示与所选省份相关的城市和县。这种功能在许多需要地理位置信息的网站或系统中...
本篇主要讨论如何利用SSH框架和DWR来实现省市二级联动效果。 省市二级联动通常是指在一个下拉菜单选择省份后,另一个下拉菜单会动态加载对应的市一级的数据。这种功能在很多网站的地址填写环节中常见,它可以提高...
《DWR实现的省市县三级联动与Oracle数据库的结合》 在现代Web开发中,为了提供用户友好的界面,常需要实现如省市县三级联动的功能,即用户选择一个省份后,下拉菜单自动加载该省份对应的市,接着选择市后,再加载...
### DWR实现省市县三级联动的关键技术点 #### 一、DWR简介及应用场景 - **DWR**(Direct Web Remoting)是一种简化Ajax应用程序开发的框架,它使得客户端JavaScript可以直接调用服务器端的Java方法变得简单易行。在...
在IT行业中,我们经常需要处理各种用户界面交互,其中一种常见的需求是实现地理位置选择的联动效果,例如省市区的选择。在这个场景中,“dwr城市选择的联动”是一种使用Direct Web Remoting (DWR) 技术来实现实时...
在这个场景中,"java_DWR递归函数实现城市的省市县三级联动" 提供了一个利用DWR处理多级联动选择的实例,特别适用于中国的行政区域划分,包括省、市、县三级。这种功能常见于地址选择、物流配送等业务场景。 首先,...
在这个"二级联动(连接数据池获取数据)"的场景中,DWR被用来在前端JS文件中获取来自后端Oracle数据库的数据,以实现联动下拉框的效果,这种效果常见于多级选择的表单中,如省市区的选择,当用户选择一个省份时,...
在这个“DWR实现省市县级联的小例子”中,我们将探讨如何利用DWR来创建一个能够动态更新省市县选择的界面,实现三级联动的效果。 首先,DWR的核心功能在于提供了一个简单的API,使得开发者可以在浏览器中直接调用...
综上所述,Dwr_cities三级联动项目是结合了MySQL数据库、Java后端、DWR、JavaScript前端以及HTML/CSS技术的一个完整示例,展示了如何利用这些技术实现动态的省市区联动选择功能。对于初学者,这是一个很好的学习资源...
两级联动通常指的是在一个下拉列表的选择会影响另一个下拉列表的选项,这种交互常见于省市区选择、产品分类等场景。 DWR的核心功能在于它提供了一种简单的方式来处理AJAX请求,使得前端JavaScript可以直接调用后端...