Spring两种跳转方式:转发与重定向,区别不做多说,如有不懂请自行百度。
跳转资源类型:页面和处理器(从当前处理器转发或重定向到另一个处理器)
转发
//转发 @RequestMapping("/first") public String doFirst(@RequestParam String name, Model model){ model.addAttribute("msg",name); //转发到second方法,如果有视图解析器则需加上forward:second,否则处理器默认找视图页面 return "forward:second"; } @RequestMapping("/second") public String doSecond(){ //找到doFirst物理视图 return "doFirst"; }
如果有视图解析器则需加上forward:second,否则处理器默认找视图页面,若是想直接转发到View视图则:forward:/second.jsp。
因为转发和重定向不识别视图解析器
login.jsp
<%@ page contentType="text/html;charset=UTF-8" language="java" %> <html> <head> <title>Login</title> </head> <body> <%--访问url--%> <form action="/first" method="post"> UserName:<input type="text" name="name"/><br/> PassWord:<input type="password" name="password"/><br/> <input type="submit" value="提交"/> </form> </body> </html>
doFirst.jsp
<%@ page contentType="text/html;charset=UTF-8" language="java" isELIgnored="false" %> <html> <head> <title>Title</title> </head> <body> <h2>doFirst</h2> ${msg} </body> </html>
运行结果
重定向
//重定向 @RequestMapping("/third") public String doThird(@RequestParame String name,Model model){ model.addAttribute("msg",name); //重定向到four处理器 return "redirect:four"; } @RequestMapping("/four") public String doFour(){ return "doFirst"; }
运行结果
