[英]How to redirect to spring controller method in app deployed on local server?
在本地Tomcat服務器上,我開發了幾個項目。 我在Spring MVC中編寫了其中之一。 我想將一些請求重定向到另一個控制器方法。 我知道可以通過使用: return "redirect:/path/to/resource";
但是,如果我已在Tomcat上部署了應用程序,則必須使用前綴,例如: return "redirect:
/appname
/path/to/resource";
。 如何使其在帶前綴和不帶前綴的服務器上工作?
聽起來您遇到了麻煩,因為在某些環境中而不是在某些環境中,您已將應用程序作為根上下文運行。 您可以使用HttpServletRequest
和HttpServletResponse
對象上可用的方法來進行更與環境無關的重定向。 一個示例Spring控制器方法如下所示:
@RequestMapping("/test")
public void test(HttpServletRequest request, HttpServletResponse response) throws IOException {
String url = request.getScheme() + "://" +
request.getServerName() + ":" +
request.getServerPort() +
request.getContextPath() + "/path/to/resource";
response.sendRedirect(url);
}
該getContextPath
特別是部分解決了你在談論這個問題,它只會返回/
如果應用程序正在運行的根上下文,但將返回/appname
,如果應用程序正在運行的appname
在你的榜樣等。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.