对于最新的稳定版本,请使用 Spring Framework 6.2.7spring-doc.cadn.net.cn

返回值

下表描述了支持的控制器方法返回值。响应式类型是 支持所有返回值。spring-doc.cadn.net.cn

控制器方法返回值 描述

@ResponseBodyspring-doc.cadn.net.cn

返回值通过HttpMessageConverter实现并写入 响应。看@ResponseBody.spring-doc.cadn.net.cn

HttpEntity<B>,ResponseEntity<B>spring-doc.cadn.net.cn

需要转换指定完整响应(包括 HTTP 头和正文)的返回值 通过HttpMessageConverterimplementations 并写入响应。 请参阅 ResponseEntityspring-doc.cadn.net.cn

HttpHeadersspring-doc.cadn.net.cn

用于返回带有标头且没有正文的响应。spring-doc.cadn.net.cn

ErrorResponsespring-doc.cadn.net.cn

要在正文中呈现包含详细信息的 RFC 9457 错误响应, 请参阅错误响应spring-doc.cadn.net.cn

ProblemDetailspring-doc.cadn.net.cn

要在正文中呈现包含详细信息的 RFC 9457 错误响应, 请参阅错误响应spring-doc.cadn.net.cn

Stringspring-doc.cadn.net.cn

要解析的视图名称ViewResolver实现并与隐式 model — 通过命令对象确定,以及@ModelAttribute方法。处理程序 方法还可以通过声明Model论点 (请参阅 显式注册)。spring-doc.cadn.net.cn

Viewspring-doc.cadn.net.cn

一个View实例,用于与隐式模型一起进行渲染 — determined 通过 Command Objects 和@ModelAttribute方法。handler 方法还可以 通过声明Model论点 (请参阅 显式注册)。spring-doc.cadn.net.cn

java.util.Map,org.springframework.ui.Modelspring-doc.cadn.net.cn

要添加到隐式模型的属性,其中视图名称是隐式确定的 通过RequestToViewNameTranslator.spring-doc.cadn.net.cn

@ModelAttributespring-doc.cadn.net.cn

要添加到模型中的属性,视图名称通过 一个RequestToViewNameTranslator.spring-doc.cadn.net.cn

请注意,@ModelAttribute是可选的。请参阅 末尾的 “任何其他返回值” 这个表。spring-doc.cadn.net.cn

ModelAndView对象spring-doc.cadn.net.cn

要使用的 view 和 model 属性,以及响应状态(可选)。spring-doc.cadn.net.cn

voidspring-doc.cadn.net.cn

具有void返回类型(或null返回值)被视为具有 处理响应时,如果它还具有ServletResponseOutputStream参数或 一@ResponseStatus注解。如果控制器已发出正数ETaglastModified时间戳检查(详见 控制器)。spring-doc.cadn.net.cn

如果以上都不是真的,则void返回类型还可以指示 “无响应正文” REST 控制器或 HTML 控制器的默认视图名称选择。spring-doc.cadn.net.cn

DeferredResult<V>spring-doc.cadn.net.cn

从任何线程异步生成上述任何返回值 — 例如,作为 某些事件或回调的结果。请参阅 异步请求DeferredResult.spring-doc.cadn.net.cn

Callable<V>spring-doc.cadn.net.cn

在 Spring MVC 管理的线程中异步生成上述任何返回值。 请参阅 异步请求Callable.spring-doc.cadn.net.cn

ListenableFuture<V>,java.util.concurrent.CompletionStage<V>,java.util.concurrent.CompletableFuture<V>spring-doc.cadn.net.cn

替代DeferredResult,以便于此使用(例如,当底层服务 返回其中一个)。spring-doc.cadn.net.cn

ResponseBodyEmitter,SseEmitterspring-doc.cadn.net.cn

异步发出对象流,以写入响应HttpMessageConverter实现。还支持作为ResponseEntity. 请参阅 异步请求HTTP 流式处理spring-doc.cadn.net.cn

StreamingResponseBodyspring-doc.cadn.net.cn

写入响应OutputStream异步。还支持作为ResponseEntity.请参阅 异步请求HTTP 流式处理spring-doc.cadn.net.cn

通过ReactiveAdapterRegistryspring-doc.cadn.net.cn

单个值类型,例如Mono等同于返回DeferredResult. 多值类型,例如Flux,可能会被视为流,具体取决于请求的 media 类型,例如 “text/event-stream”、“application/json+stream” 或其他 收集到 List 并呈现为单个值。请参阅 异步请求反应类型spring-doc.cadn.net.cn

其他返回值spring-doc.cadn.net.cn

如果返回值以任何其他方式保持未解析状态,则将其视为模型 属性,除非它是由 BeanUtils#isSimpleProperty 确定的简单类型, 在这种情况下,它仍然未解决。spring-doc.cadn.net.cn