SpringMVC转发与重定向

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";
    }

  

运行结果




原文地址:https://www.cnblogs.com/xuchangqi1/p/8669564.html