介绍
使用Ajax怎么实现一个三级联动功能?相信很多没有经验的人对此束手无策,为此本文总结了问题出现的原因和解决方法,通过这篇文章希望你能解决这个问题。
<强>前言:强>
利用Ajax来实现一个地区的三级联动,用Java代码来读json文件,先eclipse做一个简单的,最基础的。(json我用的杰克逊来解析,也可用fastjson——阿里巴巴的等还有很多)提供代码,思路之类的,注释也没有自己去想去琢磨出来的思路好
第一:首先先要熟悉json文件,并要想好利用什么类型去解析,这是最难的,最好找一个没人的地方戴上耳机(对于初学)我是用maven来做的用到的jar坐标:
& lt; dependency> & lt; groupId> redis.clients & lt; artifactId> jedis & lt; version> 2.9.0 & lt; scope> compile & lt;/dependency> & lt; dependency> & lt; groupId> javax.servlet & lt; artifactId> javax.servlet-api & lt; version> 3.1.0 & lt; scope> provided & lt;/dependency> & lt; dependency> & lt; groupId> com.fasterxml.jackson.core & lt; artifactId> jackson-databind & lt; version> 2.11.2 & lt;/dependency>
<强>文件位置:强>
第二:首先创建一个html文件3。html
加了一个字体居中和大小的样式以至于不会太难看,太原生
首先来实现-省的局部刷新,利用Ajax
& lt; script 类型=拔谋?javascript"比; $(函数(){ $ . post (“province"、功能(数据){ $ . each(数据、函数(){ $ (“# province") .append (“& lt; option 价值=https://www.yisu.com/zixun/" + this.code + "> 选项>“+ this.name +); }) }," json ") }) 脚本>
然后来写对应的ProvinceController.class的代码(主要是逻辑,为什么我要用List
package com.daben.controller; import java.io.FileInputStream; import java.io.IOException; import java.util.ArrayList; import java.util.Iterator; import 并不知道; import java.util.Map; import javax.servlet.ServletException; import javax.servlet.annotation.WebServlet; import javax.servlet.http.HttpServlet; import javax.servlet.http.HttpServletRequest; import javax.servlet.http.HttpServletResponse; import com.fasterxml.jackson.core.type.TypeReference; import com.fasterxml.jackson.databind.ObjectMapper; @WebServlet (“/province") public class  ProvinceController extends  HttpServlet { private static  final long serialVersionUID =, -6513954606070061277 l; @Override protected void  doGet (HttpServletRequest 要求,HttpServletResponse 职责),throws ServletException, IOException { this.doPost(要求,职责); } @Override protected void  doPost (HttpServletRequest 要求,HttpServletResponse 职责),throws ServletException, IOException { resp.setContentType (“appliaction/json; charset=utf-8");//可加可不加,json可在前端标注也可在后端,看自己习惯,我前后都加了 ObjectMapper om =, new objectmap();,//杰克逊核心类 String path =, req.getServletContext () .getRealPath (“/web - inf/classes/city_code.json");//利用servletContext(也有叫appliaction)来拿到文件的真实路径,也可以利用加载器拿都一样 FileInputStream fi =, new FileInputStream(路径);//流 List