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-annotated
View -- View to render with
Model -- attributes to add to the model
Map -- attributes to add to the model
Rendering -- use case driven API for view resolution@ModelAttribute -- 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.
loggerHIGHEST_PRECEDENCE, LOWEST_PRECEDENCE| Constructor and Description |
|---|
ViewResolutionResultHandler(List<ViewResolver> viewResolvers,
RequestedContentTypeResolver contentTypeResolver)
Basic constructor with a default
ReactiveAdapterRegistry. |
ViewResolutionResultHandler(List<ViewResolver> viewResolvers,
RequestedContentTypeResolver contentTypeResolver,
ReactiveAdapterRegistry registry)
Constructor with an
ReactiveAdapterRegistry instance. |
| Modifier and Type | Method and Description |
|---|---|
List<View> |
getDefaultViews()
Return the configured default
View'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 given
HandlerResult. |
getAdapter, getAdapterRegistry, getContentTypeResolver, getOrder, selectMediaType, setOrderpublic ViewResolutionResultHandler(List<ViewResolver> viewResolvers, RequestedContentTypeResolver contentTypeResolver)
ReactiveAdapterRegistry.viewResolvers - the resolver to usecontentTypeResolver - to determine the requested content typepublic ViewResolutionResultHandler(List<ViewResolver> viewResolvers, RequestedContentTypeResolver contentTypeResolver, ReactiveAdapterRegistry registry)
ReactiveAdapterRegistry instance.viewResolvers - the view resolver to usecontentTypeResolver - to determine the requested content typeregistry - for adaptation to reactive typespublic List<ViewResolver> getViewResolvers()
public void setDefaultViews(@Nullable List<View> defaultViews)
public boolean supports(HandlerResult result)
HandlerResultHandlerHandlerResult.supports in interface HandlerResultHandlerresult - the result object to checkpublic reactor.core.publisher.Mono<Void> handleResult(ServerWebExchange exchange, HandlerResult result)
HandlerResultHandlerhandleResult in interface HandlerResultHandlerexchange - current server exchangeresult - the result from the handlingMono<Void> to indicate when request handling is complete.