繁体   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