这可能是一个显而易见的问题。但是到目前为止我还不能弄清楚。
在我的Spring应用程序中,我向以下网址发出GET请求
http://www.example.com/firstpage
该请求转到前端控制器,在这里我有一个请求映射,如下所示:
@RequestMapping(value = "/firstpage")
public String handlerMethod(HttpServletRequest request, HttpSession session)
throws CustomException {
...
return "secondpage";
}
此“第二页”对应于secondpage.jsp,其内容已正确显示。
但是问题是浏览器URL仍然显示
http://www.example.com/firstpage
为什么会这样呢?关于如何更改浏览器URL的任何建议?
Spring还对URL编码提供默认支持吗?
最佳答案
Spring MVC的优点之一是视图与控制器完全分开。因此,您的控制器映射到URL路径“ / firstpage”,作为响应,它可以呈现任何视图。无论是哪种视图,它都可以是JSP,JSON,PDF。视图解析器配置确定使用哪个视图。
在您的情况下,您将返回“ secondpage”,该信息仅告诉spring根据您的视图解析器配置(可能在WEB-INF中查找secondpage.jsp或类似内容)来查找名为secondpage的视图。它仍然只是一个视图。
如果您希望它执行其他操作,则可以返回“ redirect:secondpage”,它将告诉浏览器实际重定向到“ / secondpage”,我相信这会更改地址栏中的网址,但它也想转到到映射到“ / secondpage”的控制器,或者需要在没有控制器的情况下映射视图。