此版本仍在开发中,尚未被视为稳定版本。对于最新的稳定版本,请使用 Spring Framework 6.2.7spring-doc.cadn.net.cn

返回值

下表显示了支持的控制器方法返回值。请注意,响应式 来自 Reactor、RxJava 或其他库的类型是 通常支持所有返回值。spring-doc.cadn.net.cn

对于返回类型(如Flux,当需要多个值时,元素将在出现时进行流式处理 并且没有缓冲。这是默认行为,因为在内存中保留可能大量的元素 效率不高。如果媒体类型暗示无限流(例如,application/json+stream),则单独写入和刷新值。否则 值是单独写入的,刷新是单独进行的。spring-doc.cadn.net.cn

如果在将元素编码为 JSON 时发生错误,则响应可能已写入并提交 此时不可能呈现正确的错误响应。 在某些情况下,应用程序可以选择通过缓冲元素并一次性对所有元素进行编码来牺牲内存效率以更好地处理此类错误。 然后,控制器可以返回Flux<List<B>>;Reactor 为此提供了一个专用的 Operator,Flux#collectList().
控制器方法返回值 描述

@ResponseBodyspring-doc.cadn.net.cn

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

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

返回值指定完整响应,包括 HTTP 标头,并且正文经过编码 通过HttpMessageWriter实例并写入响应。 看ResponseEntity.spring-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

要添加到隐式模型的属性,其中视图名称是隐式确定的 基于请求路径。spring-doc.cadn.net.cn

@ModelAttributespring-doc.cadn.net.cn

要添加到模型中的属性,视图名称隐式确定 在请求路径上。spring-doc.cadn.net.cn

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

Renderingspring-doc.cadn.net.cn

用于模型和视图渲染场景的 API。spring-doc.cadn.net.cn

FragmentsRendering,Flux<Fragment>,Collection<Fragment>spring-doc.cadn.net.cn

用于渲染一个或多个 Fragment,每个 Fragment 都有自己的视图和模型。 有关更多详细信息,请参阅 HTML 片段spring-doc.cadn.net.cn

voidspring-doc.cadn.net.cn

具有void,可能是异步的(例如Mono<Void>)、返回类型(或null返回 值)被视为已完全处理响应(如果它还具有ServerHttpResponse, 一个ServerWebExchange参数或@ResponseStatus注解。情况也是如此 如果控制器已发出正 ETag,或者lastModified时间戳检查。 有关详细信息,请参阅 控制器spring-doc.cadn.net.cn

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

Flux<ServerSentEvent>,Observable<ServerSentEvent>或其他响应式类型spring-doc.cadn.net.cn

发出服务器发送的事件。这ServerSentEvent当只有数据需要时,可以省略 wrapper 写入(但是,text/event-stream必须在映射中请求或声明 通过produces属性)。spring-doc.cadn.net.cn

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

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