java - 重定向仅显示链接而不是引导用户链接

标签 java spring spring-boot

这是我尝试重定向的 Controller 方法:

@GetMapping("/opensignup/{id}")
public String openSignUp(@PathVariable(value = "id") Long Id) {

    Tournament comp = tournamentRepository.findOne(Id);
    boolean b = true;
    comp.setSignUpOpen(b);

    return "redirect:/comp/" + Id;
}

我有另一种方法(这是一篇文章,如果相关的话),它可以使用同一行成功重定向到正确的页面/ Controller :

   return "redirect:/comp/" + Id;

它只是在浏览器上打印该链接,而不是重定向。 (它使用正确的 ID 打印它。)像这样:

重定向:/comp/5

如何让它重定向而不是打印?

最佳答案

正如评论中所述,您的第二个方法用 @RestController 进行注释。 @Controller 旨在返回 Spring 上下文中的 View ,而 @RestController 旨在返回将直接写入响应正文的内容(大多数情况下为 JSON)。

@RestController 基本上是 @Controller AND @ResponseBody 注释的组合,其中第二个将尝试将 POJO 映射到 JSON。

进一步阅读:

https://www.genuitec.com/spring-frameworkrestcontroller-vs-controller/

Difference between spring @Controller and @RestController annotation

关于java - 重定向仅显示链接而不是引导用户链接,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/50006362/

相关文章:

java - 如何检测 ondraglistener 是否已经完成? (安卓)

java - 如何在Java中使文件读取平台独立

java - 使用 OpenCV 将代码从 python 移植到 java

java - Spring Boot 2.1.1 中带有 RANDOM_PORT 的 SpringBootTest 每次都使用 8080

java - 多个webapp共享的restapi的身份验证

java - 如何在同一个浏览器中打开多个选项卡?

java - 使用 @Scope ("prototype"从单例更改为原型(prototype))

java - 尝试使用 java 实现 Azure AD 身份验证时出现异常

spring-boot - 何时使用@RunWith,何时使用@ExtendWith

java - SOAP wsdl 返回 404 未找到