java - 如果 Spring MVC Controller 方法不返回值,返回什么?

标签 java jquery spring-mvc

我正在使用 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/

相关文章:

javascript - slick.js slider 问题

javascript - 类型错误:幻灯片[(slideIndex - 1)] 未定义

spring-mvc - Spring Boot 提供内容类型错误的静态 .webm 和 .mp4 文件

java - Spring ControllerAdvice 中未处理 404 异常

java - Spring 和 Jackson ObjectMapper 无法使用自定义过滤器

java - 什么是 jTDS JDBC 连接 MS SQL Server 2005 Express 的 URL

java - 如何检查 AntiSamy 是否正在我的 CQ 实例上运行?

java - 用 LogBack 替换 Log4j 的问题,log4j-over-slf4j.jar 的缺点

Java 使用 radioButton 处理图像

javascript - 提示信息错误