这可能是一个显而易见的问题。但到目前为止我无法弄明白。
在我的Spring应用程序中,我向以下url发出GET请求
http://www.example.com/firstpage
此请求转到前端控制器,我的请求映射如下:
@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的默认支持吗?
答案 0 :(得分:3)
Spring MVC的一个优点是视图完全独立于控制器。因此,您的控制器映射到URL路径“/ firstpage”,作为响应,可以呈现任何视图。它可以是JSP,JSON,PDF,任何类型的视图。您的视图解析程序配置确定使用哪个视图。
在你的情况下,你返回“secondpage”,它只是告诉spring查找名为secondpage的视图,根据你的视图解析器配置,它可能在WEB-INF中查找secondpage.jsp或类似的东西。它仍然只是一种观点。
如果您希望它执行其他操作,您可以返回“redirect:secondpage”,这将告诉浏览器实际重定向到“/ secondpage”,我相信它会更改地址栏中的网址,但它也会想要转到映射到“/ secondpage”的控制器,或者需要在没有控制器的情况下映射的视图。