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";
}
运行结果