4

嗨,我是 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"。我的问题是,这两者有什么区别以及它是如何工作的?

4

1 回答 1

-1

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

于 2013-07-09T09:17:37.493 回答