时间:2021-05-19
首先我登录页面直接通过浏览器请求直接访问的,项目结构如图所示
登录页面
点击提交后,是一个ajax发送表单里面的数据,请求地址为index,会去数据库里面查询是否有这个人(后端采用mybatis去数据库查询),根据返回的结果,跳到相应的页面去,我在controller里面写的index请求的java代码为:
// 登录 @GetMapping("index") public String addDept(Dept dept) { log.info("dept===" + dept); List<Dept> depts = deptService.selectDept(dept); if (depts != null) { return "index"; } else { return "error"; } }意外的事情出现了,有查询结果出来,而且也进入了if判断,但就是没有跳转页面,这个问题困惑了许久,一直没想到问题出现在哪里,百度了很多,其中百度给的结果有以下几点:
注解使用@Controller 而不是@RestController,因为使用@RestController会返回“index”字符串
首先在pom文件中引入模板引擎jar包,即:
在application.properties中配置模板引擎
spring.thymeleaf.prefix=classpath:/templates/
不加@responseBody注解,因为加了之后会返回一个字符串的形式;
以上的这些坑,我都试了,最后还是没有失败,但是我直接在浏览器上输入index请求,会跳转到index.html的页面上面去,我就很纳闷了,还是不知道我的问题出现在哪里
我的index.html的页面如下,用ajax请求,调用去数据库查询所有人的请求,代码如下:
index页面<script src="../js/jquery-1.12.2.js"></script><script> selectDept() function selectDept() { $.get("getDept",callSelectDept,"JSON") function callSelectDept(data) { var str="" for (var i =0;i<data.length;i++){ str+=data[i].deptno+"---"+data[i].dname+"---"+data[i].loc+ "<a href=deleteDept?deptno='"+data[i].deptno+"'>删除</a>"+ "<a href=updateDept?deptno='"+data[i].deptno+"'>修改</a>" +"<br/>" } $("#queryDept").append(str) } }当通过浏览器访问index.html后,会显示出来数据,这里是没有问题的
后来过了一段时间吧,才想起来是不是ajax请求调用方法后,在java后端发送跳转页面请求后,不能跳转页面,因为ajax默认是异步请求嘛.代码如下
$.ajax({ asyn:false, url:"index", type:"get", data:data })后来将ajax请求改为同步之后,还是失败,最后,将提交表单的方式改为summit,成功!!!
<form action="index" id="frm"> <input type="text" name="dname"> <input type="text" name="loc"> <input type="submit" value="提交" ></form>总结:ajax请求最好只用于发送数据,和从后端拿数据,不要做跳转页面的...如果一定要做页面的跳转,可以约定后端放回的数据为1或0,当返回的数据为1时,用Windows.location.href="index.html" rel="external nofollow" rel="external nofollow" 来跳转
具体代码如下:
function callback(dat){ if (dat=1){ window.location.href="index.html" rel="external nofollow" rel="external nofollow" }else { alert("1") }否则就用submit提交,记住了,ajax用于发送请求到那个方法后,后端是跳转不了页面的,也不会报错,因为ajax用于默认是异步请求,如果要跳就在前端跳转页面也是可以的
这个坑记录下来,为后来的你们给与一些建议!!!
以上就是本文的全部内容,希望对大家的学习有所帮助,也希望大家多多支持。
声明:本页内容来源网络,仅供用户参考;我单位不保证亦不表示资料全面及准确无误,也不保证亦不表示这些资料为最新信息,如因任何原因,本网内容或者用户因倚赖本网内容造成任何损失或损害,我单位将不会负任何法律责任。如涉及版权问题,请提交至online#300.cn邮箱联系删除。
先看解决方案#------------mysqlroot用户无法赋权问题解决--------1,登录mysql-uroot-p2,usemysql;选择mysq
MySQLlocalhost连接,但不能用IP连接问题解决方案主要涉及到MySQL可以用localhost连接,但不能用IP连接的问题方面的内容,对于MySQL
问题:使用keep-alive标签后部分安卓机返回缓存页位置不精确问题解决方案:constrouter=newRouter({scrollBehavior(to
windows无法配置此无线连接问题解决方案。电脑无线网络无法连接是个大问题,提示windows无法配置此无线连接,如果你要windows配置此无线网络,请启动
这篇文章主要介绍了springboot乱码问题解决方案,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友可以参考下在配置文