如果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);

}

我已经进行了设置,以便每个控制器都将返回@ResponseBodyas 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

回到顶部