springmvc+ajax实现省市区三级联动以及406 (Not Acceptable)的解决办法
2018-01-30 17:54
489 查看
我做一个小的测试实现功能
最主要是说一下遇到的问题:
我先用的spring3.2的包但是遇到好多的问我问题,
(1)首先就是不能使用*.htm,*.html的地址后缀;
(2)这个会报406 (Not Acceptable)的错误:
办法:1.你可以换成4.0的包,然后就能支持*.htm的后缀了;2.看看你的json包导进去没jackson-annotations-2.7.0.jar ,jackson-core-2.7.0.jar ,jackson-databind-2.7.0.jar;
3.在spring配置文件中加入以下代码
下面是实现的代码:
1.首先创建页面
2.后台代码:
controller层:
dao层
public interface ShengDao {
@Select("select id,name,father from sheng where father=#{father}")
List<Sheng> getSheng(int father);
}
service层
实体类
实体类可以创建一个,不需要弄成两个或者多个。
4.效果:
最主要是说一下遇到的问题:
我先用的spring3.2的包但是遇到好多的问我问题,
(1)首先就是不能使用*.htm,*.html的地址后缀;
(2)这个会报406 (Not Acceptable)的错误:
办法:1.你可以换成4.0的包,然后就能支持*.htm的后缀了;2.看看你的json包导进去没jackson-annotations-2.7.0.jar ,jackson-core-2.7.0.jar ,jackson-databind-2.7.0.jar;
3.在spring配置文件中加入以下代码
<bean id="mappingJacksonHttpMessageConverter" class="org.springframework.http.converter.json.MappingJackson2HttpMessageConverter"> <property name="supportedMediaTypes"> <list> <value>text/html;charset=UTF-8</value> </list> </property> </bean> <bean class="org.springframework.web.servlet.mvc.annotation.AnnotationMethodHandlerAdapter"> <property name="messageConverters"> <list> <ref bean="mappingJacksonHttpMessageConverter" /><!-- json转换器 --> </list> </property> </bean>
下面是实现的代码:
1.首先创建页面
<%@ page language="java" contentType="text/html; charset=UTF-8" pageEncoding="UTF-8"%> <%@ taglib uri="http://java.sun.com/jstl/core_rt" prefix="c"%> <html> <head> <meta http-equiv="Content-Type" content="text/html; charset=UTF-8"> <title>个人网站</title> <script type="text/javascript"> function select(){ var praviceID = $("#sheng").val(); $.ajax({ url:"sheng.htm", type:"POST", //contentType:"application/json", dataType:"json", data:{"pravice":praviceID}, success:function(data){ $("#shi").html("");//先清空 //遍历传过来的list集合 $.each(data,function(i,sheng){ a463 $("#shi").append( "<option value='"+sheng.id+"'>"+sheng.name+"</option>" ) }) } }); }; function select1(){ var shengID = $("#shi").val(); $.ajax({ url:"sheng1.htm", type:"POST", dataType:"json", data:{"sheng":shengID}, success:function(data){ $("#qu").html(""); $.each(data,function(i,qu){ $("#qu").append( "<option value='"+qu.id+"'>"+qu.name+"</option>" ) }) } }); }; </script> </head> <body data-spy="scroll" data-target=".navbar" data-offset="50"> <div> <h1>省市区三级联动</h1> 省份: <select id="sheng" onchange="select()"> <option value="">-请选择-</option> <!-- 循环显示所有省份 --> <c:forEach items="${list}" var="pv" > <option value="${pv.id}">${pv.name}</option> </c:forEach> </select> 城市: <select id="shi" onchange="select1()"> <option value="">-请选择-</option> </select> 区域: <select id="qu"> <option value="">-请选择-</option> </select> </fieldset> </div> </body> </html>
2.后台代码:
controller层:
@Controller public class LoginController { @Autowired private ShengService ss; @Autowired private PraviceService ps; @RequestMapping("/wel.htm") public String getWel(HttpServletRequest req) { log.info("初始化页面................."); List<Pravice> list = ps.getId(); req.setAttribute("list", list); return "index"; } @RequestMapping("/sheng.htm") @ResponseBody public List<Sheng> getS(@RequestParam(value = "pravice")int praviceID){ System.out.println(praviceID); List<Sheng> name = ss.getSheng(praviceID); for(Sheng s:name){ System.out.println(s.getName()); } return name; } @RequestMapping("/sheng1.htm") @ResponseBody public List<Sheng> getQ(@RequestParam(value = "sheng")int shengID){ System.out.println(shengID); List<Sheng> name = ss.getSheng(shengID); for(Sheng s:name){ System.out.println(s.getName()); } return name; } }
dao层
public interface ShengDao {
@Select("select id,name,father from sheng where father=#{father}")
List<Sheng> getSheng(int father);
}
public interface PraviceDao { @Select("select id,name from pravice") List<Pravice> getPravice(); }
service层
@Service public class ShengService { @Autowired private ShengDao sd; public List<Sheng> getSheng(int id){ List<Sheng> s = sd.getSheng(id); return s; } }
@Service public class PraviceService { @Autowired private PraviceDao pd; public List<Pravice> getId(){ List<Pravice> list = new ArrayList<Pravice>(); list = pd.getPravice(); return list; } }
实体类
实体类可以创建一个,不需要弄成两个或者多个。
public class Sheng { private int id; private String name; private int father; 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 int getFather() { return father; } public void setFather(int father) { this.father = father; } }
public class Pravice { private int id; private String 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; } }数据库结构大家看着实体类自己做一下。
4.效果:
相关文章推荐
- ASP.NET MVC + Jquery 实现Ajax下拉框数据三级联动
- PHP+Mysql+Ajax+JS实现省市区三级联动
- asp.net ajax简单实现省市区三级联动(二):面向对象实现
- spring mvc json @ResponseBody 出现406错误 not acceptable ,解决方法,亲测可行
- AJAX省市区三级联动下拉列表实现 JAVA开发
- 解决Js解析xml浏览器不兼容问题及省市区三级联动实现
- Ajax来实现下拉框省市区三级联动效果(服务端基于express)
- 【重要】spring+springMVC,JdbcTemplate声明式事务失效,原因以及解决办法
- 02-26C#三级省市区ajax联动控件,利用UpdatePanel,以及页面取值
- asp.net ajax简单实现省市区三级联动(一):一般实现
- 【Spring学习笔记-MVC-5】利用spring MVC框架,实现ajax异步请求以及json数据的返回
- 解决Js解析xml浏览器不兼容问题及省市区三级联动实现
- Spring MVC+JSP实现三级联动
- Spring mvc @ResponseBody jquery ajax调用出现如下错误:406 Not Acceptable
- ASP.NET MVC + Jquery 实现Ajax下拉框数据三级联动
- php ajax 实现三级省市区联动
- 使用Ajax+jQuery实现省市区三级联动
- ASP.NET MVC + Jquery 实现Ajax下拉框数据三级联动
- AJAX省市区三级联动下拉列表实现 JAVA开发
- ASP.NET MVC + Jquery 实现Ajax下拉框数据三级联动