簡體   English   中英

如何重定向到部署在本地服務器上的應用程序中的spring controller方法?

[英]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"; 如何使其在帶前綴和不帶前綴的服務器上工作?

聽起來您遇到了麻煩,因為在某些環境中而不是在某些環境中,您已將應用程序作為根上下文運行。 您可以使用HttpServletRequestHttpServletResponse對象上可用的方法來進行更與環境無關的重定向。 一個示例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.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM