Springboot页⾯跳转详解
springboot框架的作用今天处理Springboot统⼀异常拦截的时候,遇到了页⾯跳转的问题,折腾了半天才⼤致弄明⽩了其中的坑坑洼洼。
有三个⽅⾯的问题需要注意:
⼀.jar包依赖:Springboot有⾃⼰默认的模板引擎。⼀定要引⽤相应的依赖包。我就是没引⽤,导致⼀直⽆法跳转。
<dependency>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-thymeleaf</artifactId>
</dependency>
⼆.注解:@ResponseBody
在@Controller 控制层,是否为请求地址添加该注解也是影响跳转是否成功的因素。@responseBody注
解的作⽤是将controller的⽅法返回的对象通过适当的转换器转换为指定的格式之后,然后直接输出到页⾯,并不会⾛视图处理器。
例如1:
@RequestMapping("/tiaozhuan.htm")
@responseBody
public ModelAndView tiaozhuan() {
ModelAndView view = new ModelAndView("/403.html");
return view;
}
例如2:
@RequestMapping("/tiaozhuan.htm")
public String tiaozhuan() {
return "/403.html";
}
例如3:
@RequestMapping("/tiaozhuan.htm")
public String tiaozhuan() {
return "redirect:/403.html";
}
三.post与get请求:post请求与get请求也会有差别
问题:使⽤Ajax向SpringMVC中Controller层发送POST请求,⽆论我们使⽤return "index.jsp"、转发、重定向还是 ModelAndView,都⽆法解决页⾯跳转的问题。
例如1:
@RequestMapping("/tiaozhuan.htm")
public ModelAndView tiaozhuan() {
ModelAndView view = new ModelAndView("/403.html");
return view;
}
例如2:
@RequestMapping("/tiaozhuan.htm")
public String tiaozhuan() {
return "redirect:/403.html";
}
所以,当Ajax的post请求后,返回的只能是字符流,不是页⾯,⽆法实现跳转功能。
总结:在springmvc框架下,在前端ajax的post请求下,后端是⽆法实现页⾯跳转的,只有使⽤get请求才能实现跳转。所以post请求下的页⾯跳转只能交给前端去实现。
版权声明:本站内容均来自互联网,仅供演示用,请勿用于商业和其他非法用途。如果侵犯了您的权益请与我们联系QQ:729038198,我们将在24小时内删除。
发表评论