如果Spring MVC控制器方法不返回值,该怎么办?
我正在使用jQuery $.getJSON()
对我的简单Spring MVC后端进行异步调用。大多数Spring控制器方法如下所示:
@RequestMapping(value = "/someURL", method = RequestMethod.POST)public @ResponseBody SomePOJO getSomeData(@ModelAttribute Widget widget,
@RequestParam("type") String type) {
return someDAO.getSomeData(widget, type);
}
我已经进行了设置,以便每个控制器都将返回@ResponseBody
as JSON,这是客户端所期望的。
但是,当不应将请求返回任何内容到客户端时会发生什么呢?我能有......吗:
@RequestMapping(value = "/updateSomeData" method = RequestMethod.POST)public @ResponseBody void updateDataThatDoesntRequireClientToBeNotified(...) {
...
}
如果没有,在这里使用什么合适的语法?提前致谢!
回答:
您可以返回void,然后必须使用@ResponseStatus(value = HttpStatus.OK)标记该方法,而无需使用@ResponseBody
@RequestMapping(value = "/updateSomeData" method = RequestMethod.POST)@ResponseStatus(value = HttpStatus.OK)
public void updateDataThatDoesntRequireClientToBeNotified(...) {
...
}
只有get方法隐式地返回200状态代码,所有其他方法都可以做以下三件事之一:
- 返回void并用标记方法
@ResponseStatus(value = HttpStatus.OK)
- 返回一个对象并标记为
@ResponseBody
- 返回一个
HttpEntity
实例
以上是 如果Spring MVC控制器方法不返回值,该怎么办? 的全部内容, 来源链接: utcz.com/qa/404101.html