重定向只显示链接而不是用户链接

时间:2018-04-24 16:10:21

标签: java spring spring-boot

以下是我尝试重定向的控制器方法:

@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;
}

我有另一种方法(这是一个帖子,如果有相关的),它成功地重定向到具有相同行的正确页面/控制器:

   return "redirect:/comp/" + Id;

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

重定向:/ COMP / 5

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

2 个答案:

答案 0 :(得分:1)

如评论中所述,您的第二种方法使用@RestController进行注释。虽然@Controller意味着在Spring上下文中返回视图,但@RestController意味着返回将直接写入响应主体的内容(在大多数情况下为JSON)。

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

进一步阅读:

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

Difference between spring @Controller and @RestController annotation

答案 1 :(得分:0)

这是因为我的方法的顶部有一个@RestController注释而不是@Controller。因为我不需要它宁静,我改变它,我的问题解决了。如果有人想要了解为什么会这样做和/或如何在保持@RestController注释(如果可能的话)的同时做到这一点,那么请随意。