我们都知道通过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”,此时也必须是完全的路径。

(本文仅作个人学习记录用,如有纰漏敬请指正)