Spring MVC3.0中redirect:prefix和forward:前缀之间的区别

时间:2013-07-09 07:35:20

标签: redirect spring-mvc

您好我是Spring MVC的新手我正在关注Spring参考文档我对视图解析器有疑问。这是我的示例代码。

@Controller
@RequestMapping("/form")
public class MyController {

    @RequestMapping(method = RequestMethod.GET)
    public String setupForm() {
        // do my stuff
        return "myform";
    }

    @RequestMapping(method = RequestMethod.POST)
    public String processForm(ModelMap model) {            
        // process form data

        model.addAttribute("notification", "Successfully did it!");
        return "redirect:/form";
    }
}

这里我使用两个控制器,第一个返回"myform",第二个返回"redirect:/form"。我的问题是,这两者之间有什么区别以及它是如何工作的?

1 个答案:

答案 0 :(得分:-1)

如果你熟悉jsp servlet,我想你可以知道重定向和转发之间的区别,或者你可以从谷歌获得大量的答案。然后我想解释一下Spring是如何做到这一点的。在 setupForm 方法中,它返回myform,然后根据你的视图resovler配置,它将尝试查找myform.jsp或其他喜欢这个,如果你的视图resovler是 internalresourceviewresovler ,Spring将自动执行前向 并尝试在web-inf目录中找到此jsp,否则,您必须指定前向前缀。对于 processForm 方法,在返回重定向:/ form 后,它会强制浏览器向服务器发送新请求 / form 由spring mvc获得,它将使用相关方法处理它。