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 sub-classes
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
-