码迷,mamicode.com
首页 > 编程语言 > 详细

SpringMVC重定向

时间:2020-01-18 21:36:57      阅读:110      评论:0      收藏:0      [点我收藏+]

标签:code   tle   end   mon   mapping   val   hat   文件   操作   

  首先明白,重定向一定不会经过视图解析器,因为请求转发的页面是在地址栏直接访问的,是一个新的请求,如果经过视图解析器,拼接后的结果就是错误的,所以重定向一定不经过视图解析器。另外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");
 }








重定向传参数并且url上不显示参数信息:

第一个controller:

/*
* 登录操作
*/
@RequestMapping(value = "/login",method = RequestMethod.POST)
public String index(HttpServletRequest request,
RedirectAttributes attr){
/*
* 重定向回到登录页面
* 传递参数RedirectAttributes 然后再拧一个controller获取传回页面
*/
attr.addFlashAttribute("msg", "验证码错误");
return "redirect:tologin";
}else{
return "/system/home";
}
}

用于处理重定向的controller:

@GetMapping("/tologin")
public String tologin(@ModelAttribute("msg") String msg,Model model) {
//@ModelAttribute 用于解析重定向这个方法传回登录页面 Model把参数带回去
model.addAttribute("msg", msg);
return "system/login";
}

SpringMVC重定向

标签:code   tle   end   mon   mapping   val   hat   文件   操作   

原文地址:https://www.cnblogs.com/wcyer/p/12209958.html

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!