使用Json设置网页省份与城市的级联查询
2017-09-22 11:32
309 查看
创建ShengShi3Servlet
在web.xml配置访问
在jsp页面使用ajax进行异步请求查询
思路:使用传统的方式与ajax混合使用,在第一次访问网页时,默认查询省份的第一条数据,城市绑定查询的第一个省份,在用户省份下拉框改变的时,用ajax进行触发(change事件)异步请求后台servlet根据发送的省份id查询所属市区的id,后台查询数据成功后进行json的数据格式的拼接发送后台,前台进行读取。
public class ShengShi3Servlet extends HttpServlet { public void doGet(HttpServletRequest request, HttpServletResponse response) { try { request.setCharacterEncoding("utf-8"); response.setContentType("text/html;charset=utf-8"); ShengShiDao shengshiDao =new ShengShiDao(); List<Sheng> sheng =shengshiDao.searchSheng(); int id=sheng.get(0).getId(); if(request.getParameter("id") ==null){ List<Shi> shi =shengshiDao.searchShiBySheng(id); Sheng selectSheng =new Sheng(); selectSheng.setId(id); selectSheng.setShi(shi); request.setAttribute("sheng", sheng); request.setAttribute("slelctsheng", selectSheng); request.getRequestDispatcher("shengshi3.jsp").forward(request, response); } else{ id=Integer.parseInt(request.getParameter("id")); List<Shi> shi =shengshiDao.searchShiBySheng(id); PrintWriter out =response.getWriter(); int shilength=shi.size(); String str="["; for(int i=0;i<shilength;i++){ str+="{\"id\":"+shi.get(i).getId()+",\"name\":"+"\""+shi.get(i).getName()+"\""+"},"; } str=str.substring(0,str.length()-1); str+="]"; out.print(str); } } catch (UnsupportedEncodingException e) { // TODO Auto-generated catch block e.printStackTrace(); } catch (ServletException e) { // TODO Auto-generated catch block e.printStackTrace(); } catch (IOException e) { // TODO Auto-generated catch block e.printStackTrace(); } } public void doPost(HttpServletRequest request, HttpServletResponse response) { doGet(request,response); }
在web.xml配置访问
<servlet> <servlet-name>ShengShi3Servlet</servlet-name> <servlet-class>servlet.ShengShi3Servlet</servlet-class> </servlet> <servlet-mapping> <servlet-name>ShengShi3Servlet</servlet-name> <url-pattern>/city3</url-pattern> </servlet-mapping>
在jsp页面使用ajax进行异步请求查询
<%@ page language="java" import="java.util.*" pageEncoding="UTF-8"%> <%@ taglib uri="http://java.sun.com/jsp/jstl/core" prefix="c"%> <% String path = request.getContextPath(); String basePath = request.getScheme() + "://" + request.getServerName() + ":" + request.getServerPort() + path + "/"; %> <!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN"> <html> <head> <base href="<%=basePath%>"> <title>省市</title> <meta http-equiv="pragma" content="no-cache"> <meta http-equiv="cache-control" content="no-cache"> <meta http-equiv="expires" content="0"> <meta http-equiv="keywords" content="keyword1,keyword2,keyword3"> <meta http-equiv="description" content="This is my page"> <!-- <link rel="stylesheet" type="text/css" href="styles.css"> --> <script type="text/javascript" src="js/jquery.js"></script> <script type="text/javascript"> $(document).ready(function() { $("#sheng").change(function() { $.ajax({ url : "city3", type : "post", data : { id : $(this).val() }, dataType : "json", success : function(data) { var str=""; $.each(data,function(index,element){ str+="<option value="+data[index].id+">"+data[index].name+"</option>"; }) $("#shi").html(str); } }) }) }) </script> <style type="text/css"> #main { margin: 0 auto; width: 300px; height: auto; } </style> </head> <body> <div id="main"> 省<select id="sheng"> <c:forEach items="${sheng }" var="sheng"> <option value="${sheng.id }" <c:if test="${sheng.id==slelctsheng.id }">selected</c:if>> ${sheng.name}</option> </c:forEach> </select> 市<select id="shi"> <c:forEach items="${slelctsheng.shi }" var="select"> <option value="${select.id }">${select.name}</option> </c:forEach> </select> </div> </body> </html>
思路:使用传统的方式与ajax混合使用,在第一次访问网页时,默认查询省份的第一条数据,城市绑定查询的第一个省份,在用户省份下拉框改变的时,用ajax进行触发(change事件)异步请求后台servlet根据发送的省份id查询所属市区的id,后台查询数据成功后进行json的数据格式的拼接发送后台,前台进行读取。
相关文章推荐
- Struts2使用DoubleSelect实现二级级联下拉框省份城市
- Struts2使用DoubleSelect实现二级级联下拉框省份城市
- Jquery如何序列化form表单数据为JSON对象 C# ADO.NET中设置Like模糊查询的参数 从客户端出现小于等于公式符号引发检测到有潜在危险的Request.Form 值 jquery调用iframe里面的方法 Js根据Ip地址自动判断是哪个城市 【我们一起写框架】MVVM的WPF框架(三)—数据控件 设计模式之简单工厂模式(C#语言描述)
- 中国省份城市级联选择--asp.net +jquery +json +xml
- 根据省份级联查询城市(WinForm)
- js国家省份城市 级联 ,只有点中国的时候才可以选省份,城市
- 使用jquery JSON Handler实现级联效果
- 用xml实现省份城市的级联(无刷新的)
- jqGrid与Struts2的结合应用(六) —— 使用colModel设置查询功能
- ORACLE如何在有视图的SQL中使用hint(提示)来设置视图内的SQL查询方式
- 省份城市级联的js文件(不带县)
- 使用CSS设置网页图片透明度
- hibernate使用groupProperty,sqlGroupProjection查询,为sqlGroupProjection设置别名,用于排序
- 设置IE7/IE8每次访问网页时都重新加载,而不使用缓存
- 中国省份城市级联选择--JavaScript
- WCF 第十三章 可编程站点 使用AJAX和JSON进行网页编程
- ORACLE如何在有视图的SQL中使用hint(提示)来设置视图内的SQL查询方式
- Dreamweaver使用CSS样式表设置网页文本格式
- asp+access中 打开网页时出现“操作必须使用一个可更新的查询”原因及解决办法
- 使用META的 X-UA-Compatible 设置网页兼容模式(转)