As @RestController
是组成@Controller
and @ResponseBody
,我相信如果我希望我的控制器同时工作
MVC 和 REST 控制器只需注释@RestController
应该没事。那是对的吗?
As @RestController
是组成@Controller
and @ResponseBody,
我认为这在内部意味着它有利于
- 接收http请求(因为
@Controller
)
- 以 JSON 格式发送响应(因为
@ResponseBody
)但如果需要可以更改
@RestController
并不意味着用于返回要解决的视图。它应该返回将写入响应正文的数据,因此包含@ResponseBody
。您不能有选择地禁用@ResponseBody
在各个处理程序方法上,当@ResponseBody
已经是类级别的注释。
您可以通过返回来解决这个问题ModelAndView
,即使在@RestController
, 但是你真的不应该:
@RequestMapping
public ModelAndView renderFooList() {
ModelAndView mav = new ModelAndView("foo/list");
mav.addObject("foos", fooService.getFoos());
return mav;
}
最好为返回视图的普通处理程序创建单独的控制器,并为 RESTful 内容创建 REST 控制器。或者用普通的注释类@Controller
并把@ResponseBody
关于您实际需要的方法。
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)