Class ResponseBodyEmitterReturnValueHandler
java.lang.Object
org.springframework.web.servlet.mvc.method.annotation.ResponseBodyEmitterReturnValueHandler
- All Implemented Interfaces:
HandlerMethodReturnValueHandler
public class ResponseBodyEmitterReturnValueHandler
extends Object
implements HandlerMethodReturnValueHandler
Handler for return values of type
ResponseBodyEmitter and subclasses
such as SseEmitter including the same types wrapped with
ResponseEntity.
As of 5.0 also supports reactive return value types for any reactive
library with registered adapters in ReactiveAdapterRegistry.
- Since:
- 4.2
- Author:
- Rossen Stoyanchev
-
Constructor Summary
ConstructorsConstructorDescriptionResponseBodyEmitterReturnValueHandler(List<HttpMessageConverter<?>> messageConverters) Simple constructor with reactive type support based on a default instance ofReactiveAdapterRegistry,SyncTaskExecutor, andContentNegotiationManagerwith an Accept header strategy.ResponseBodyEmitterReturnValueHandler(List<HttpMessageConverter<?>> messageConverters, ReactiveAdapterRegistry registry, TaskExecutor executor, ContentNegotiationManager manager) Complete constructor with pluggable "reactive" type support. -
Method Summary
Modifier and TypeMethodDescriptionvoidhandleReturnValue(Object returnValue, MethodParameter returnType, ModelAndViewContainer mavContainer, NativeWebRequest webRequest) Handle the given return value by adding attributes to the model and setting a view or setting theModelAndViewContainer.setRequestHandled(boolean)flag totrueto indicate the response has been handled directly.booleansupportsReturnType(MethodParameter returnType) Whether the given method return type is supported by this handler.
-
Constructor Details
-
ResponseBodyEmitterReturnValueHandler
Simple constructor with reactive type support based on a default instance ofReactiveAdapterRegistry,SyncTaskExecutor, andContentNegotiationManagerwith an Accept header strategy. -
ResponseBodyEmitterReturnValueHandler
public ResponseBodyEmitterReturnValueHandler(List<HttpMessageConverter<?>> messageConverters, ReactiveAdapterRegistry registry, TaskExecutor executor, ContentNegotiationManager manager) Complete constructor with pluggable "reactive" type support.- Parameters:
messageConverters- converters to write emitted objects withregistry- for reactive return value type supportexecutor- for blocking I/O writes of items emitted from reactive typesmanager- for detecting streaming media types- Since:
- 5.0
-
-
Method Details
-
supportsReturnType
Description copied from interface:HandlerMethodReturnValueHandlerWhether the given method return type is supported by this handler.- Specified by:
supportsReturnTypein interfaceHandlerMethodReturnValueHandler- Parameters:
returnType- the method return type to check- Returns:
trueif this handler supports the supplied return type;falseotherwise
-
handleReturnValue
public void handleReturnValue(@Nullable Object returnValue, MethodParameter returnType, ModelAndViewContainer mavContainer, NativeWebRequest webRequest) throws Exception Description copied from interface:HandlerMethodReturnValueHandlerHandle the given return value by adding attributes to the model and setting a view or setting theModelAndViewContainer.setRequestHandled(boolean)flag totrueto indicate the response has been handled directly.- Specified by:
handleReturnValuein interfaceHandlerMethodReturnValueHandler- Parameters:
returnValue- the value returned from the handler methodreturnType- the type of the return value. This type must have previously been passed toHandlerMethodReturnValueHandler.supportsReturnType(org.springframework.core.MethodParameter)which must have returnedtrue.mavContainer- the ModelAndViewContainer for the current requestwebRequest- the current request- Throws:
Exception- if the return value handling results in an error
-