@ResponseBody
|
返回值通过 HttpMessageConverter 实现进行转换,并写入响应。请参阅 @ResponseBody . |
HttpEntity<B> , ResponseEntity<B>
|
指定完整响应(包括 HTTP 标头和主体)的返回值,将通过 HttpMessageConverter 实现进行转换,并写入响应。请参阅 ResponseEntity. |
HttpHeaders
|
用于返回带有标头且没有主体的响应。 |
ErrorResponse
|
要呈现带有主体中详细信息的 RFC 9457 错误响应,请参阅 错误响应 |
ProblemDetail
|
要呈现带有主体中详细信息的 RFC 9457 错误响应,请参阅 错误响应 |
String
|
要与 ViewResolver 实现一起解析并与隐式模型一起使用的视图名称 - 通过命令对象和 @ModelAttribute 方法确定。处理程序方法还可以通过声明 Model 参数以编程方式丰富模型(请参阅 显式注册)。 |
View
|
用于渲染的 View 实例,以及隐式模型(通过命令对象和 @ModelAttribute 方法确定)。 处理程序方法也可以通过声明 Model 参数以编程方式丰富模型(参见 显式注册)。 |
java.util.Map , org.springframework.ui.Model
|
要添加到隐式模型中的属性,视图名称通过 RequestToViewNameTranslator 隐式确定。 |
@ModelAttribute
|
要添加到模型中的属性,视图名称通过 RequestToViewNameTranslator 隐式确定。
请注意,@ModelAttribute 是可选的。 请参阅本表末尾的“任何其他返回值”。 |
ModelAndView 对象
|
要使用的视图和模型属性,以及可选的响应状态。 |
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 流式传输. |
通过ReactiveAdapterRegistry 注册的 Reactor 和其他响应式类型 |
单个值类型,例如Mono ,类似于返回DeferredResult 。多值类型,例如Flux ,可能会根据请求的媒体类型被视为流,例如“text/event-stream”、“application/json+stream”,否则将被收集到列表中并渲染为单个值。参见异步请求和响应式类型. |
其他返回值 |
如果返回值以任何其他方式无法解析,则将其视为模型属性,除非它是BeanUtils#isSimpleProperty确定的简单类型,在这种情况下,它将保持未解析状态。 |