spring如何重定向到内部jsp文件?

时间:2014-12-11 00:09:02

标签: java spring spring-mvc redirect

我的web-inf目录中有一个hello.jsp文件。如果我的控制器返回“redirect:hello”,我的理解是它重定向浏览器以在hello.jsp文件上执行get请求。

为什么这样做?我以为浏览器无法在我的web-inf文件夹中请求任何内容。重定向到像控制器方法那样可公开访问的东西不是更有意义吗?

2 个答案:

答案 0 :(得分:0)

redirect命令将302(或它是301?)Location头发送给客户端。在你的情况下,它将是相对URL"你好"。这与他们目前所处的任何URL相关。因此,如果他们在www.example.com/some-url/some-other-url,则会将其重定向到www.example.com/some-url/hello。

然后,浏览器向www.example.com/some-url/hello发出GET请求。

如果您碰巧有一个名为" hello"的JSP,那并不重要。这完全是关于URL的。

通常,重定向路径是"绝对"意思是起始" /",尽管这仍然与上下文相关。

答案 1 :(得分:0)

redirect:hello将浏览器重定向到/hello网址。它不检索名为hello的JSP文件。您正在考虑的是视图解析器,它将返回的String解析为JSP文件。

@RequestMapping(value = "/page1")
public String redirectToHello() {
    return "redirect:hello"; // redirects from /page1 to /hello
}

@RequestMapping(value = "/hello")
public String getHello() {
    return "hello"; // uses a configured view resolver to get a jsp file named hello.jsp
}

查看JSP view resolvers docs.