返回值
下表显示了支持的控制器方法返回值。请注意,来自 Reactor、RxJava 或 其他 等库的响应式类型通常支持所有返回值。
对于像 Flux 这样的返回类型,当预期有多个值时,元素会随到随流,而不会被缓冲。这是默认行为,因为在内存中保留大量元素效率不高。如果媒体类型暗示无限流(例如,application/json+stream),则值会单独写入和刷新。否则,值会单独写入,刷新操作单独进行。
如果元素编码为 JSON 时发生错误,响应可能已经被写入并提交,此时无法渲染正确的错误响应。在某些情况下,应用程序可以选择牺牲内存效率以更好地处理此类错误,方法是缓冲元素并一次性编码它们。控制器可以返回 Flux<List<B>>;Reactor 为此提供了专门的操作符,即 Flux#collectList()。 |
| 控制器方法返回值 | 描述 |
|---|---|
|
返回值通过 |
|
返回值指定完整的响应,包括 HTTP 头,并且正文通过 |
|
用于返回带有头但无正文的响应。 |
|
要渲染 RFC 9457 错误响应并在正文中包含详细信息,请参见 错误响应 |
|
一个视图名称,将通过 |
|
一个 |
|
要添加到隐式模型的属性,视图名称根据请求路径隐式确定。 |
|
要添加到模型的属性,视图名称根据请求路径隐式确定。 请注意, |
|
一个用于模型和视图渲染场景的 API。 |
|
用于渲染一个或多个片段,每个片段都有自己的视图和模型。有关详细信息,请参见 HTML 片段。 |
|
如果一个方法具有 如果以上情况均不属实, |
|
发出服务器发送事件。当只需要写入数据时,可以省略 |
其他返回值 |
如果返回值以任何其他方式未被解析,则将其视为模型属性,除非它是由 BeanUtils#isSimpleProperty 确定的简单类型,在这种情况下它仍未被解析。 |