以下是我尝试重定向的控制器方法:
@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
如何让它重定向而不是打印?
答案 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注释(如果可能的话)的同时做到这一点,那么请随意。