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 a View
to use for rendering.
If a view is left unspecified (e.g. by returning null
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
ConstructorDescriptionViewResolutionResultHandler
(List<ViewResolver> viewResolvers, RequestedContentTypeResolver contentTypeResolver) Basic constructor with a defaultReactiveAdapterRegistry
.ViewResolutionResultHandler
(List<ViewResolver> viewResolvers, RequestedContentTypeResolver contentTypeResolver, ReactiveAdapterRegistry registry) Constructor with anReactiveAdapterRegistry
instance. -
Method Summary
Modifier and TypeMethodDescriptionReturn the configured defaultView
's.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 Details
-
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 Details
-
getViewResolvers
Return a read-only list of view resolvers. -
setDefaultViews
Set the default views to consider always when resolving view names and trying to satisfy the best matching content type. -
getDefaultViews
Return the configured defaultView
's. -
supports
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.
-