SpringMVC重定向的两种方式
首先明白,重定向一定不会经过视图解析器,因为请求转发的页面是在地址栏直接访问的,是一个新的请求,如果经过视图解析器,拼接后的结果就是错误的,所以重定向一定不经过视图解析器。另外WEB-INF下的所有文件必须通过请求转发才能访问。
约定:在本项目存在/WEB_INF/pages/success.jsp文件,
SpringMVC的环境自行配置
方式一:SpringMVC提供的重定向
前端界面
<a href="${pageContext.request.ContextPath}/redirectMVC">SpringMVC方式重定向</a>
后台代码
//请求转发处理器 @RequestMapping("/redirectMVC") public String forwardView(){ //不能由于上面介绍的原因,所以此处的写法是错误的 //return "redirect:/WEB_INF/pages/success.jsp"; //此处的写法是正确的 return "redirect:forwardMVC"; } @RequestMapping("/forwardMVC") public String forwardMVC(){ return "success"; }
方式二:Servlet原生支持的重定向
前端界面
<a href="${pageContext.request.ContextPath}/redirectCommon">传统方式重定向</a>
后台代码
//请求转发处理器 @RequestMapping("/redirectMVC") public void forwardView(HttpServletRequest,HttpServletResponse){ response.sendRedirect(request.getContextPath()+"/项目名/forwardView"); }