java - 从Spring MVC中的控制器操作重定向到外部URL
我注意到以下代码将用户重定向到项目内的URL,
@RequestMapping(method = RequestMethod.POST)
public String processForm(HttpServletRequest request, LoginForm loginForm,
BindingResult result, ModelMap model)
{
String redirectUrl = "yahoo.com";
return "redirect:" + redirectUrl;
}
然而,以下是按预期正确重定向,但需要[http://]或[https://]
@RequestMapping(method = RequestMethod.POST)
public String processForm(HttpServletRequest request, LoginForm loginForm,
BindingResult result, ModelMap model)
{
String redirectUrl = "http://www.yahoo.com";
return "redirect:" + redirectUrl;
}
我希望重定向始终重定向到指定的URL,无论它是否具有有效的协议,并且不想重定向到视图。 我怎样才能做到这一点?
谢谢,
8个解决方案
138 vo

在Spring MVC中,重定向外部URL时需要指定协议(如http://或https://)。可以使用`return "redirect:" + redirectUrl;`方式,或者通过HttpServletResponse的`setHeader`和`setStatus`方法,或者使用`RedirectView`和`ResponseEntity`来实现。如果希望重定向始终包含协议,可以动态拼接请求的协议,如`request.getScheme() + "://www.yahoo.com"`。
最低0.47元/天 解锁文章
1575

被折叠的 条评论
为什么被折叠?



