这可能是一个显而易见的问题。但到目前为止我无法弄清楚。
在我的 Spring 应用程序中,我向以下 url 发出 GET 请求
http://www.example.com/firstpage
这个请求转到前端 Controller ,我有一个请求映射如下:
@RequestMapping(value = "/firstpage")
public String handlerMethod(HttpServletRequest request, HttpSession session)
throws CustomException {
...
return "secondpage";
}
这个“secondpage”对应于secondpage.jsp,其内容正确显示。 但问题是浏览器 URL 仍然显示
http://www.example.com/firstpage
为什么会这样?关于如何更改浏览器 URL 的任何建议? Spring 是否对编码 URL 有任何默认支持?
最佳答案
Spring MVC 的优点之一是 View 与 Controller 完全分离。因此,您的 Controller 映射到 URL 路径“/firstpage”,作为响应可以呈现任何 View 。它可以是 JSP、JSON、PDF,任何类型的 View 。您的 View 解析器配置决定了使用哪个 View 。
在你的例子中,你返回的是“secondpage”,它只是告诉 spring 寻找名为 secondpage 的 View ,根据你的 View 解析器配置,它可能在 WEB-INF 中查找 secondpage.jsp 或类似的东西。它仍然只是一个 View 。
如果你想让它做别的事情,你可以返回“redirect:secondpage”,它会告诉浏览器实际重定向到“/secondpage”,我相信这会改变地址栏中的 url,但它也会想要转到映射到“/secondpage”的 Controller ,或者需要一个没有 Controller 映射的 View 。
关于java - Spring MVC - 浏览器中的 URL 显示和编码支持,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/9809347/