gpt4 book ai didi

java - Spring RedirectView 在不同的 tomcat 安装中表现不同

转载 作者:搜寻专家 更新时间:2023-10-31 19:41:46 36 4
gpt4 key购买 nike

我有 2 个 tomcat 实例。两者都在代理 apache httpds 之后。我在 Spring Controller 中的代码如下所示:

@RequestMapping(value = "/doSuperSexyStuff", method = RequestMethod.GET)
public String viewSuperSexyStuff() {
return "redirect:/mySuperSexyStuff";
}

在我第一次在 Windows 上安装 tomcat 时,我将 somedomain1.dev 重定向到 http://localhost:8080/myapp 并且一切正常。重定向到 http://somedomain1.dev/mySuperSexyStuff

在另一个 tomcat 安装(在 Linux 上)上,重定向相对于上下文路径起作用,用户最终到达 http://somedomain2.dev/myapp/mySuperSexyStuff,这显然是错误的。

我应该怎么做才能让 spring 忽略上下文路径并将用户重定向到他“所属”的位置?

我的应用程序中的所有 URL 都是绝对的(包括 jsps 中的链接、重定向 URL 和所有使用链接的地方)。我想这不是正确的做事方式:如果我必须实现网站的 HTTPS 版本,我就会遇到麻烦。因此,如果您认为我必须从根本上改变我的方法,请指出正确的方向。

最佳答案

与其返回一个非常不灵活的字符串,不如考虑返回一个 View :

@RequestMapping(value = "/doSuperSexyStuff", method = RequestMethod.GET)
public View viewSuperSexyStuff(){
return new RedirectView("/mySuperSexyStuff");
}

重定向 View 有一个构造函数,它接受一个 boolean 值 contextRelative,所以下面的代码与上面的相反:

return new RedirectView("/mySuperSexyStuff", true);

你所有的 url 都应该是上下文相关的,除非你真的将它们指向你的站点,因此指向 css、图像 Assets 等的链接应该在 jsp 中使用 <c:url />用于解析路径的标记。

关于java - Spring RedirectView 在不同的 tomcat 安装中表现不同,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/4800262/

36 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com