不废话,上代码:

先看一下项目列表:

tool包里的代码:

请看:tool包

vo.Area类:

package com.jd.vo;public class Area {private String id;private String name;private String code;private String parentCode;public Area(String id, String name, String code, String parentCode) {this.id = id;this.name = name;this.code = code;this.parentCode = parentCode;}public String getId() {return id;}public void setId(String id) {this.id = id;}public String getName() {return name;}public void setName(String name) {this.name = name;}public String getCode() {return code;}public void setCode(String code) {this.code = code;}public String getParentCode() {return parentCode;}public void setParentCode(String parentCode) {this.parentCode = parentCode;}@Overridepublic String toString() {return "Area [id=" + id + ", name=" + name + ", code=" + code + ", parentCode=" + parentCode + "]";}
}

imp中的接口:

IAreaService接口:

package com.jd.area.imp;import java.util.List;import com.jd.vo.Area;public interface IAreaService {List<Area> select(String parentCode);
}

IAreaDao接口:

package com.jd.area.imp;import java.util.List;import com.jd.vo.Area;public interface IAreaDao {List<Area> select(String parentCode);
}

service包:

AreaService类:

package com.jd.area.service;import java.util.List;import com.jd.area.dao.AreaDao;
import com.jd.area.imp.IAreaDao;
import com.jd.area.imp.IAreaService;
import com.jd.vo.Area;public class AreaService implements IAreaService {private IAreaDao areaDao = new AreaDao();public List<Area> select(String parentCode) {if(parentCode==null) {parentCode = "";}return areaDao.select(parentCode);}}

dao包:

AreaDao类:

package com.jd.area.dao;import java.sql.ResultSet;
import java.sql.SQLException;
import java.util.ArrayList;
import java.util.List;import com.jd.area.imp.IAreaDao;
import com.jd.tool.db.DBLink;
import com.jd.tool.db.IRowMapper;
import com.jd.vo.Area;public class AreaDao implements IAreaDao {public List<Area> select(String parentCode) {String sql = "select * from area where parent_code = '"+parentCode+"'";final List<Area> LIST = new ArrayList<Area>();new DBLink().select(sql, (new IRowMapper() {public void rowMapper(ResultSet rs) {try {while(rs.next()) {String id = rs.getString("id");String name = rs.getString("name");String code = rs.getString("code");String parentCode = rs.getString("parent_code");LIST.add(new Area(id,name,code,parentCode));}} catch (SQLException e) {e.printStackTrace();}}} ));return LIST;}}

servlet:

CascadeServlet:

package com.jd.area.servlet;import java.io.IOException;
import java.io.PrintWriter;import javax.servlet.ServletException;
import javax.servlet.http.HttpServlet;
import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse;import com.google.gson.Gson;
import com.jd.area.imp.IAreaService;
import com.jd.area.service.AreaService;public class CascadeServlet extends HttpServlet {private static final long serialVersionUID = 1L;private IAreaService areaService = new AreaService();protected void doGet(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {String parentCode = request.getParameter("parentCode");response.setContentType("text/plain; charset=UTF-8");//调用service层//jsonString json = new Gson().toJson(areaService.select(parentCode));//生成json字符串//响应页面PrintWriter out = response.getWriter();out.write(json);out.flush();out.close();}}

index.jsp:

<%@ page language="java" contentType="text/html; charset=UTF-8"  pageEncoding="UTF-8"%><!DOCTYPE html>
<html><head><title>Insert title here</title><script type="text/javascript" src="./js/jquery-1.8.3.min.js"></script><script type="text/javascript" src="./js/json2.js"></script><script type="text/javascript">//省$(function(){var parentCode = "";var obj = {url: "./CascadeServlet?parentCode="+parentCode ,dataType: "text",//用于设置服务器响应回来的数据的类型success:function(data){//只有状态码(status)是200时才走data = JSON.parse(data);//将一个json字符串转换成一个JavaScript对象var options = "<option value=''>--请选择--</option>";for(var i = 0; i < data.length; i++){var province = data[i];options = options + "<option value='"+province.code+"'>"+province.name+"</option>";}$("#province").empty();$("#province").append(options);}};$.ajax(obj);});//市function changeCity(){var parentCode = $("#province").val();if(parentCode==""){$("#city").empty();$("#city").append("<option value=''>--请选择--</option>");$("#county").empty();$("#county").append("<option value=''>--请选择--</option>");return;}var obj = {url: "./CascadeServlet?parentCode="+parentCode,dataType: "text",//用于设置服务器响应回来的数据的类型success:function(data){//只有状态码(status)是200时才走data = JSON.parse(data);//将一个json字符串转换成一个JavaScript对象var options = "<option value=''>--请选择--</option>";for(var i = 0; i < data.length; i++){var city = data[i];options = options + "<option value='"+city.code+"'>"+city.name+"</option>";}$("#county").empty();$("#county").append("<option value=''>--请选择--</option>");$("#city").empty();$("#city").append(options);}};$.ajax(obj);}//县区function changeCounty(){var parentCode = $("#city").val();if(parentCode==""){$("#county").empty();$("#county").append("<option value=''>--请选择--</option>");return;}var obj = {url: "./CascadeServlet?parentCode="+parentCode,dataType: "text",//用于设置服务器响应回来的数据的类型success:function(data){//只有状态码(status)是200时才走data = JSON.parse(data);//将一个json字符串转换成一个JavaScript对象var options = "<option value=''>--请选择--</option>";for(var i = 0; i < data.length; i++){var county = data[i];options = options + "<option value='"+county.code+"'>"+county.name+"</option>";}$("#county").empty();$("#county").append(options);}};$.ajax(obj);}</script></head><body><select id="province" onchange="changeCity()"><option value="">--请选择--</option></select><select id="city" onchange="changeCounty()"><option value="">--请选择--</option></select><select id="county"><option value="">--请选择--</option></select></body>
</html>

省市县三级级联(模块化开发)相关推荐

  1. zTree实现地市县三级级联报错(一)

    zTree实现地市县三级级联 1.详细报错例如以下: java.lang.IllegalStateException: Failed to load ApplicationContextat org. ...

  2. 全国省市县三级级联SQL数据库内容

    创建表 CREATE TABLE [dbo].[City]([id] [INT] NOT NULL,[pid] [INT] NULL,[cityName] [NVARCHAR](50) NULL,[t ...

  3. 你要的三级级联我都有

    文章目录 前言 Ant Design Vue 实现 Element-ui 实现 由于业务变动之前做的搜索框变为三级级联,特此记录三级级联 前言 本文讲述下拉框的三级级联,有 Ant Design Vu ...

  4. java省市县联动 下拉框选择_原生JavaScript实现动态省市县三级联动下拉框菜单实例代码...

    像平时购物选择地址时一样,通过选择的省动态加载城市列表,通过选择的城市动态加载县区列表,从而可以实现省市县的三级联动,下面使用原生的JavaScript来实现这个功能: 先给大家展示下测试结果: 未做 ...

  5. 【原创】【推荐】《ASP.NET 3.5+SQL Server网站模块化开发全程实录》出版记

    进过半年多的努力,<ASP.NET 3.5+SQL Server网站模块化开发全程实录>一书终于得以由清华大学出版社顺利出版. 第一次出版此类图书,不免其中会有诸多纰漏,还望广大读者不吝指 ...

  6. JavaScript模块化开发技术概述

    2019独角兽企业重金招聘Python工程师标准>>> 什么是模块化开发? 前端开发中,起初只要在script标签中嵌入几十上百行代码就能实现一些基本的交互效果,后来js得到重视,应 ...

  7. 组件化开发和模块化开发概念辨析

    网上有许多讲组件化开发.模块化开发的文章,但大家一般都是将这两个概念混为一谈的,并没有加以区分.而且实际上许多人对于组件.模块的区别也不甚明了,甚至于许多博客文章专门解说这几个概念都有些谬误. 想分清 ...

  8. 前端模块化开发学习之gulpbrowserify篇

     随着web应用的发展,前端的比重占得越来越多,编写代码从而也越来越复杂.而通常我们需要将不同功能或者不同模块的代码分开写,最后在html中一起加载,这样做是可以的,但是当你需要进行维护或者是二次开发 ...

  9. 字段定义_两大高招逐浪CMS中定义省地市县三级字段显示方式

    众所周知,逐浪CMS支持强大的字段定义功能,其中省市县三级字段更是无比强大,可以自由的实现地区的定制,方便web和移动开发者们.这里分享几则技巧. 1.定义省市县三级字段的显示顺序 只要点击网站后台快 ...

最新文章

  1. 【linux】Valgrind工具集详解(一):简介
  2. nginx 限流,以及nginx直接返回json格式数据
  3. Android检查是否自启动,android – 如何检查我的应用程序是否是默认启动器
  4. js获取元素的方法与属性
  5. java多态编译_关于java:编译时多态是否是这样的运行时多态?
  6. 一、宿主机Linux系统的基本环境设置
  7. 腾讯新出了一款音乐app,它能代替QQ音乐吗?
  8. IntelliJ IDEA 自定义注释作者名字
  9. 小程序项目:基于微信小程序的超市购物系统——计算机毕业设计
  10. Java 6.22练习-----模拟物流快递系统程序设计
  11. iOS 视频边下边播(缓存,预加载)
  12. Java面试题及答案2020,安卓java编程软件app
  13. 对List中的对象的模糊查询
  14. 亚马逊显示在售商品为0怎么办?亚马逊新品货还没到就在售了
  15. FM收音机ic FM发射模块SX6116
  16. 【Altium designer】常用的线宽和过孔尺寸
  17. 2.3 放大电路的分析方法
  18. Android 应用界面设计
  19. TensorFlow 2官方教程 . Keras机器学习基础知识 . 使用TF Hub进行文本分类
  20. xfs文件系统损坏修复

热门文章

  1. solr单机版的搭建
  2. jQuery 超屏加载
  3. this.options[selectedIndex]的使用
  4. Martin Fowler对全世界程序员的建议
  5. javascript网页开发 第二章
  6. Linux创建指定用户特定指定目录权限
  7. nginx虚拟目录设置 alias 和 root
  8. C#中Timer组件用法
  9. ASP.NET2.0中用Gridview控件操作数据
  10. FAIL - Deployed application at context path / but context failed to start