我正在使用 jQuery 的 $.getJSON()
对我的简单 Spring MVC 后端进行异步调用。大多数 Spring Controller 方法如下所示:
@RequestMapping(value = "/someURL", method = RequestMethod.POST)
public @ResponseBody SomePOJO getSomeData(@ModelAttribute Widget widget,
@RequestParam("type") String type) {
return someDAO.getSomeData(widget, type);
}
我进行了一些设置,以便每个 Controller 将 @ResponseBody
作为 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
实例
关于java - 如果 Spring MVC Controller 方法不返回值,返回什么?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/12837907/