gpt4 book ai didi

spring - 在 spring boot 中将控制从一个 Controller 重定向到另一个 Controller

转载 作者:行者123 更新时间:2023-12-04 18:30:45 24 4
gpt4 key购买 nike

我试图将控制从一个 Controller 重定向到另一个 Controller ,但它没有发生。我经历了以前的 stackoverflow 问题,但他们的解决方案不适用于我的情况。

我的 Controller 是

@RestController
@RequestMapping( "/rest/auth" )
public class UnprotectedController extends AbstractController {

@Autowired
private UserServices userService;

@Autowired
private RequesterService requesterService;


@RequestMapping(value = "/login",method = RequestMethod.POST)
public ModelAndView login(HttpServletRequest request, HttpServletResponse response)
{
return new ModelAndView("redirect:/login");
}
}

Postman 中,如果我点击 http://localhost:8090/login,我会得到有效的响应。但是如果我点击 http://localhost:8090/rest/auth/login,我会收到错误信息

{
"timestamp": 1504340884618,
"status": 404,
"error": "Not Found",
"message": "No message available",
"path": "/login"

控制似乎没有重定向到指定的 redirect url。为什么会这样?

http://localhost:8090/loginspring security验证用户凭证并创建Security Context

的路径

最佳答案

好吧,我想你可以用另一种方式做到这一点。通过使用此 HttpServletResponse,您可以作为参数。

response.sendRedirect("/login");

但是,它会抛出两种类型的异常,因此也必须执行 try/catch。

你遇到的问题是你在你的 Controller 上使用@RestController 注释,它给所有方法一个@ResponseBody 注释,我认为你不能返回一个 ModelAndView 作为响应主体。

尝试返回一个像这样的字符串

return "redirect:/login"

return "forward:/login";

关于spring - 在 spring boot 中将控制从一个 Controller 重定向到另一个 Controller ,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/46011937/

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