我们都知道通过servlet跳转到具体的视图有两种方式,一种方式是重定向,一种方式请求转发。那么在SpringMVC中视图解析后跳转是哪种方式实现的呢?很明显在我们发起请求时地址栏内的地址是没有发生变化的,所以SpringMVC默认是采用请求转发的方式进行跳转,那么我们是否可以通过重定向的方式到自己想去的页面呢?答案是可以的。
一、重定向
@RequestMapping("/red") public String test1() { return "redirect:/index.jsp"; }
重定向只需要在return中加一个“redirect:”,需要注意必须是完全路径,当有重定向标记后,不会在视图解析器加上前缀后缀。
二、请求转发
SpringMVC默认就是请求转发,但也可以显式地写出来:
@RequestMapping("/for") public String test2(Model model) { model.addAttribute("message", "这是请求转发"); return "forward:/WEB-INF/jsp/main.jsp"; }
显式地表示出来需要加一个“forward”,此时也必须是完全的路径。
(本文仅作个人学习记录用,如有纰漏敬请指正)