Class ViewResolutionResultHandler
- java.lang.Object
- org.springframework.web.reactive.result.HandlerResultHandlerSupport
- org.springframework.web.reactive.result.view.ViewResolutionResultHandler
- All Implemented Interfaces:
Ordered
,HandlerResultHandler
public class ViewResolutionResultHandler extends HandlerResultHandlerSupport implements HandlerResultHandler, Ordered
HandlerResultHandler
that encapsulates the view resolution algorithm supporting the following return types:Void
or no value -- default view nameString
-- view name unless@ModelAttribute
-annotatedView
-- View to render withModel
-- attributes to add to the modelMap
-- attributes to add to the modelRendering
-- use case driven API for view resolution@ModelAttribute
-- attribute for the model- Non-simple value -- attribute for the model
A String-based view name is resolved through the configured
ViewResolver
instances into aView
to use for rendering. If a view is left unspecified (e.g. by returningnull
or a model-related return value), a default view name is selected.By default this resolver is ordered at
Ordered.LOWEST_PRECEDENCE
and generally needs to be late in the order since it interprets any String return value as a view name or any non-simple value type as a model attribute while other result handlers may interpret the same otherwise based on the presence of annotations, e.g. for@ResponseBody
.- Since:
- 5.0
- Author:
- Rossen Stoyanchev
Field Summary
Fields inherited from class org.springframework.web.reactive.result.HandlerResultHandlerSupport
logger
Fields inherited from interface org.springframework.core.Ordered
HIGHEST_PRECEDENCE, LOWEST_PRECEDENCE
Constructor Summary
Constructors Constructor Description ViewResolutionResultHandler(List<ViewResolver> viewResolvers, RequestedContentTypeResolver contentTypeResolver)
Basic constructor with a defaultReactiveAdapterRegistry
.ViewResolutionResultHandler(List<ViewResolver> viewResolvers, RequestedContentTypeResolver contentTypeResolver, ReactiveAdapterRegistry registry)
Constructor with anReactiveAdapterRegistry
instance.
Method Summary
All Methods Instance Methods Concrete Methods Modifier and Type Method Description List<View>
getDefaultViews()
Return the configured defaultView
's.List<ViewResolver>
getViewResolvers()
Return a read-only list of view resolvers.reactor.core.publisher.Mono<Void>
handleResult(ServerWebExchange exchange, HandlerResult result)
Process the given result modifying response headers and/or writing data to the response.void
setDefaultViews(List<View> defaultViews)
Set the default views to consider always when resolving view names and trying to satisfy the best matching content type.boolean
supports(HandlerResult result)
Whether this handler supports the givenHandlerResult
.Methods inherited from class org.springframework.web.reactive.result.HandlerResultHandlerSupport
getAdapter, getAdapterRegistry, getContentTypeResolver, getOrder, selectMediaType, setOrder
Constructor Detail
ViewResolutionResultHandler
public ViewResolutionResultHandler(List<ViewResolver> viewResolvers, RequestedContentTypeResolver contentTypeResolver)
Basic constructor with a defaultReactiveAdapterRegistry
.- Parameters:
viewResolvers
- the resolver to usecontentTypeResolver
- to determine the requested content type
ViewResolutionResultHandler
public ViewResolutionResultHandler(List<ViewResolver> viewResolvers, RequestedContentTypeResolver contentTypeResolver, ReactiveAdapterRegistry registry)
Constructor with anReactiveAdapterRegistry
instance.- Parameters:
viewResolvers
- the view resolver to usecontentTypeResolver
- to determine the requested content typeregistry
- for adaptation to reactive types
Method Detail
getViewResolvers
public List<ViewResolver> getViewResolvers()
Return a read-only list of view resolvers.
setDefaultViews
public void setDefaultViews(@Nullable List<View> defaultViews)
Set the default views to consider always when resolving view names and trying to satisfy the best matching content type.
getDefaultViews
public List<View> getDefaultViews()
Return the configured defaultView
's.
supports
public boolean supports(HandlerResult result)
Description copied from interface:HandlerResultHandler
Whether this handler supports the givenHandlerResult
.- Specified by:
supports
in interfaceHandlerResultHandler
- Parameters:
result
- the result object to check- Returns:
- whether or not this object can use the given result
handleResult
public reactor.core.publisher.Mono<Void> handleResult(ServerWebExchange exchange, HandlerResult result)
Description copied from interface:HandlerResultHandler
Process the given result modifying response headers and/or writing data to the response.- Specified by:
handleResult
in interfaceHandlerResultHandler
- Parameters:
exchange
- current server exchangeresult
- the result from the handling- Returns:
Mono<Void>
to indicate when request handling is complete.