重定向到Spring MVC中的外部URL

时间:2013-08-05 19:29:05

标签: java spring jsp spring-mvc

在Spring Controller Action中,我使用以下语句重定向到外部URL:

String redirectUrl = "www.yahoo.com";
return "redirect:" + redirectUrl;

但是,它似乎是在本地重定向网址而不是用www.yahoo.com替换整个地址栏网址。

Ex:通过上面的重定向,我的地址栏现在看起来像:

http://localhost/myApp/auth/www.yahoo.com

我该如何解决这个问题?我甚至尝试重定向到视图,然后让视图重定向URL,但结果仍然相同。它似乎工作的唯一方法是,如果我有http://www.yahoo.comhttps://www.yahoo.com但我希望它按照指定重定向URL,而不一定提到协议。例如:如果直接进入地址栏,yahoo.com与http://www.yahoo.com类似。

由于

1 个答案:

答案 0 :(得分:9)

如果主机与当前主机的主机不同,则需要协议

String redirectUrl = "http://www.yahoo.com";
return "redirect:" + redirectUrl;

查看Spring Web MVC framework

中的redirect: prefix部分
  

逻辑视图名称,例如redirect:/ myapp / some / resource将相对于当前的Servlet上下文重定向,而重定向:http://myhost.com/some/arbitrary/path等名称将重定向到绝对URL。