【问题标题】:Spring Boot redirect to another urlSpring Boot 重定向到另一个 url
【发布时间】:2020-12-21 10:26:13
【问题描述】:

在我的 Spring Boot 项目中,我想做一个从 http://localhost:8080 到 http://localhost:8080/birdspotting 的重定向。这是 Home 控制器的代码:

@RestController
public class HomeController {

    @GetMapping("/")
    public String showHomePage() {
        return "redirect:/birdspotting";
    }
}

去http://localhost:8080的结果是redirect:/birdspotting的打印

【问题讨论】:

  • 使用@Controller 而不是@RestController

标签: spring-boot redirect controller


【解决方案1】:

基本上 RestController = Controller + RequestBody

这将发送 json 响应,但我们希望视图解析器返回页面或重定向 url。

所以使用@Controller 而不是@RestController 来解决这个问题。

更新:

如果你想在同一个控制器中同时使用这两者,那么在类级别使用@Controller,然后在任何你想返回 API 调用响应的地方将 @ResponseBody 放在方法上,在你想返回 Web 浏览器页面的任何地方都不要放置 @ResponseBody。

【讨论】:

  • 如果两者都需要,我该怎么办?我的意思是,API 调用时的答案和 Web 浏览时的重定向?
  • 更新了答案...让我知道以进一步澄清。
【解决方案2】:

您必须创建另一个端点,例如:

    @GetMapping("/")
    public String showHomePage() {
        return "redirect:/birdspotting";
    }

    @GetMapping("/birdspotting")
    public String birdspottingPage() {
        return "birdspotting";
    }

预计您的模板中有birdspotting.html

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2016-01-10
    • 2013-05-28
    • 2020-09-05
    • 1970-01-01
    • 2018-10-27
    • 1970-01-01
    相关资源
    最近更新 更多