我使用start.spring.io创建了项目,但当我使用@Controller时,我会出现白标签错误,当我将其更改为@RestController时,不会出现任何错误。为什么?
可能您没有合适的内容类型,因此spring无法识别请求,通常情况下,常规控制器也应该根据您的注释工作。
你还没有发布控制器本身的代码,所以我们只能推测。
简而言之,如果您想将响应序列化为HttpResponse,您应该执行以下操作:
@Controller
@RequestMapping("students")
public class SampleStudentsController {
@GetMapping("/{id}", produces = "application/json")
public @ResponseBody Student getStudent(@PathVariable int id) {
return ....
}
}
另外请注意,有一个@ResponseBody
注释,它自动"包含"在更"专业"的控制器@RestController
版本中,用于REST交互
还可以考虑阅读本文以获取更多信息