@ResponseBody
|
返回值通过 HttpMessageConverter 实现进行转换并写入响应。详见 @ResponseBody 。 |
HttpEntity<B> 、ResponseEntity<B>
|
指定完整响应(包括 HTTP 头和正文)的返回值通过 HttpMessageConverter 实现进行转换并写入响应。详见 ResponseEntity。 |
HttpHeaders
|
用于返回包含头但不包含正文的响应。 |
ErrorResponse
|
要渲染 RFC 9457 错误响应并在正文中包含详细信息,详见 错误响应 |
ProblemDetail
|
要渲染 RFC 9457 错误响应并在正文中包含详细信息,详见 错误响应 |
String
|
一个视图名称,将通过 ViewResolver 实现进行解析,并与隐式模型(通过命令对象和 @ModelAttribute 方法确定)一起使用。Handler 方法还可以通过声明一个 Model 参数来编程方式丰富模型(详见 显式注册)。 |
View
|
一个 View 实例,用于与隐式模型(通过命令对象和 @ModelAttribute 方法确定)一起进行渲染。Handler 方法还可以通过声明一个 Model 参数来编程方式丰富模型(详见 显式注册)。 |
java.util.Map 、org.springframework.ui.Model
|
要添加到隐式模型中的属性,视图名称通过 RequestToViewNameTranslator 隐式确定。 |
@ModelAttribute
|
要添加到模型中的属性,视图名称通过 RequestToViewNameTranslator 隐式确定。
请注意,@ModelAttribute 是可选的。详见本表末尾的“其他返回值”。 |
ModelAndView 对象
|
要使用的视图和模型属性,以及可选的响应状态。 |
FragmentsRendering 、Collection<ModelAndView>
|
用于渲染一个或多个片段,每个片段都有自己的视图和模型。详见 HTML 片段。 |
void
|
如果一个方法的返回类型为 void (或返回值为 null ),并且它包含 ServletResponse 、OutputStream 参数或 @ResponseStatus 注解,则认为它已完全处理了响应。如果控制器进行了 ETag 或 lastModified 时间戳的肯定性检查(详见 控制器),情况也相同。
如果以上条件都不成立,void 返回类型也可以表示 REST 控制器的“无响应体”或 HTML 控制器的默认视图名称选择。 |
DeferredResult<V>
|
从任何线程异步产生任何前面的返回值——例如,作为某些事件或回调的结果。详见 异步请求 和 DeferredResult 。 |
Callable<V>
|
在 Spring MVC 管理的线程中异步产生任何上述返回值。详见 异步请求 和 Callable 。 |
ListenableFuture<V> 、java.util.concurrent.CompletionStage<V> 、java.util.concurrent.CompletableFuture<V>
|
DeferredResult 的替代方案,作为一种便利(例如,当底层服务返回其中之一时)。
|
ResponseBodyEmitter 、SseEmitter
|
异步发送对象流,以便使用 HttpMessageConverter 实现写入响应。也支持作为 ResponseEntity 的正文。详见 异步请求 和 HTTP 流。 |
StreamingResponseBody
|
异步写入响应 OutputStream 。也支持作为 ResponseEntity 的正文。详见 异步请求 和 HTTP 流。 |
Reactor 和其他通过 ReactiveAdapterRegistry 注册的响应式类型 |
单个值类型,例如 Mono ,类似于返回 DeferredResult 。多个值类型,例如 Flux ,可以根据请求的媒体类型(例如 "text/event-stream"、"application/json+stream")被视为流,否则会被收集到 List 中并作为单个值渲染。详见 异步请求 和 响应式类型。 |
其他返回值 |
如果返回值通过任何其他方式仍未解析,则将其视为模型属性,除非它是通过 BeanUtils#isSimpleProperty 确定的简单类型,在这种情况下它仍未解析。 |