gpt4 book ai didi

java - Spring Boot 。在 RestController 上转发

转载 作者:行者123 更新时间:2023-12-05 01:03:58 25 4
gpt4 key购买 nike

我正在实现一种替换短链接的机制。

我需要将请求转发给另一个 Controller 。我在模型上找到了如何在 spring 中执行此操作的示例,但我不明白如何在 RestControllers 中执行此操作

我发现的示例(使用模型)

@Controller
public class ShrotLinkForwardController {

@RequestMapping("/s/*")
public String myMethod(HttpServletRequest request) {
return "forward:/difmethod";
}
}

或者也许我看错了方向,我需要做一个过滤器?

UPD。我不知道最终的端点,它是在转发方法中计算的。所以,我不能自动连接其他 Controller

最佳答案

有两种方法可以实现您想要的。

1。直接调用目标 Controller 上的方法。

Controller 只是普通的 Spring bean。您可以通过 autowire 获得它。

@Controller
public class ShrotLinkForwardController {

@Autowired
OtherController otherController;

@RequestMapping("/s/*")
public String myMethod(Model model) {
otherController.doStuff();
return ...;
}
}

2。通过返回字符串触发转发

要触发转发,请尝试返回 String 而不是 ModelAndView

这是您在问题中提到的方法。注意语法应该是forward:/forwardURLforward: 后面的字符串是指向另一个 Controller 的 URL,而不是方法名。

@Controller
public class ShrotLinkForwardController {

@RequestMapping("/s/*")
public String myMethod(Model model) {
return "forward:/forwardURL";
}
}

关于java - Spring Boot 。在 RestController 上转发,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/73108875/

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