Class AbstractView
java.lang.Object
org.springframework.web.reactive.result.view.AbstractView
- All Implemented Interfaces:
org.springframework.beans.factory.Aware, org.springframework.beans.factory.BeanNameAware, org.springframework.context.ApplicationContextAware, View
- Direct Known Subclasses:
AbstractUrlBasedView
-
Field Summary
FieldsModifier and TypeFieldDescriptionprotected final org.apache.commons.logging.LogLogger that is available to subclasses.static final StringWell-known name for the RequestDataValueProcessor in the bean factory.Fields inherited from interface View
BINDING_CONTEXT_ATTRIBUTE -
Constructor Summary
ConstructorsConstructorDescriptionAbstractView(org.springframework.core.ReactiveAdapterRegistry reactiveAdapterRegistry) -
Method Summary
Modifier and TypeMethodDescriptionprotected RequestContextcreateRequestContext(org.springframework.web.server.ServerWebExchange exchange, Map<String, Object> model) Create aRequestContextto expose under the specified attribute name.protected String@Nullable org.springframework.context.ApplicationContextGet the view's name.Get the default charset, used when the content type does not contain one.getModelAttributes(@Nullable Map<String, ?> model, org.springframework.web.server.ServerWebExchange exchange) Prepare the model to use for rendering.Get the name of theRequestContextattribute for this view, if any.protected @Nullable RequestDataValueProcessorGet theRequestDataValueProcessorto use.List<org.springframework.http.MediaType> Get the configured media types supported by this view.protected final org.springframework.context.ApplicationContextObtain theApplicationContextfor actual use.reactor.core.publisher.Mono<Void> render(@Nullable Map<String, ?> model, @Nullable org.springframework.http.MediaType contentType, org.springframework.web.server.ServerWebExchange exchange) Prepare the model to render.protected abstract reactor.core.publisher.Mono<Void> renderInternal(Map<String, Object> renderAttributes, @Nullable org.springframework.http.MediaType contentType, org.springframework.web.server.ServerWebExchange exchange) Subclasses must implement this method to actually render the view.protected reactor.core.publisher.Mono<Void> resolveAsyncAttributes(Map<String, Object> model, org.springframework.web.server.ServerWebExchange exchange) Use the configuredReactiveAdapterRegistryto adapt asynchronous attributes toMono<T>orMono<List<T>>and then wait to resolve them into actual values.voidsetApplicationContext(@Nullable org.springframework.context.ApplicationContext applicationContext) voidsetBeanName(@Nullable String beanName) Set the view's name.voidsetDefaultCharset(Charset defaultCharset) Set the default charset for this view, used when the content type does not contain one.voidsetRequestContextAttribute(@Nullable String requestContextAttribute) Set the name of theRequestContextattribute for this view.voidsetSupportedMediaTypes(List<org.springframework.http.MediaType> supportedMediaTypes) Set the supported media types for this view.toString()Methods inherited from class Object
clone, equals, finalize, getClass, hashCode, notify, notifyAll, wait, wait, waitMethods inherited from interface View
isRedirectView
-
Field Details
-
REQUEST_DATA_VALUE_PROCESSOR_BEAN_NAME
Well-known name for the RequestDataValueProcessor in the bean factory.- See Also:
-
logger
protected final org.apache.commons.logging.Log loggerLogger that is available to subclasses.
-
-
Constructor Details
-
AbstractView
public AbstractView() -
AbstractView
public AbstractView(org.springframework.core.ReactiveAdapterRegistry reactiveAdapterRegistry)
-
-
Method Details
-
setSupportedMediaTypes
Set the supported media types for this view.Default is
"text/html;charset=UTF-8". -
getSupportedMediaTypes
Get the configured media types supported by this view.- Specified by:
getSupportedMediaTypesin interfaceView
-
setDefaultCharset
Set the default charset for this view, used when the content type does not contain one.Default is UTF 8.
-
getDefaultCharset
Get the default charset, used when the content type does not contain one. -
setRequestContextAttribute
-
getRequestContextAttribute
-
setBeanName
-
getBeanName
-
setApplicationContext
public void setApplicationContext(@Nullable org.springframework.context.ApplicationContext applicationContext) - Specified by:
setApplicationContextin interfaceorg.springframework.context.ApplicationContextAware
-
getApplicationContext
-
obtainApplicationContext
protected final org.springframework.context.ApplicationContext obtainApplicationContext()Obtain theApplicationContextfor actual use.- Returns:
- the
ApplicationContext(nevernull) - Throws:
IllegalStateException- if the ApplicationContext cannot be obtained- See Also:
-
render
public reactor.core.publisher.Mono<Void> render(@Nullable Map<String, ?> model, @Nullable org.springframework.http.MediaType contentType, org.springframework.web.server.ServerWebExchange exchange) Prepare the model to render.- Specified by:
renderin interfaceView- Parameters:
model- a map with attribute names as keys and corresponding model objects as values (the map can also benullin case of an empty model)contentType- the content type selected to render with, which should match one of thesupported media typesexchange- the current exchange- Returns:
- a
Monothat represents when and if rendering succeeds
-
getModelAttributes
protected reactor.core.publisher.Mono<Map<String,Object>> getModelAttributes(@Nullable Map<String, ?> model, org.springframework.web.server.ServerWebExchange exchange) Prepare the model to use for rendering.The default implementation creates a combined output Map that includes model as well as static attributes with the former taking precedence.
-
resolveAsyncAttributes
protected reactor.core.publisher.Mono<Void> resolveAsyncAttributes(Map<String, Object> model, org.springframework.web.server.ServerWebExchange exchange) Use the configuredReactiveAdapterRegistryto adapt asynchronous attributes toMono<T>orMono<List<T>>and then wait to resolve them into actual values. When the returnedMono<Void>completes, the asynchronous attributes in the model will have been replaced with their corresponding resolved values.- Returns:
- result a
Monothat completes when the model is ready - Since:
- 5.1.8
-
createRequestContext
protected RequestContext createRequestContext(org.springframework.web.server.ServerWebExchange exchange, Map<String, Object> model) Create aRequestContextto expose under the specified attribute name.The default implementation creates a standard
RequestContextinstance for the given exchange and model.Can be overridden in subclasses to create custom instances.
- Parameters:
exchange- the current exchangemodel- a combined output Map (nevernull), with dynamic values taking precedence over static attributes- Returns:
- the
RequestContextinstance - See Also:
-
getRequestDataValueProcessor
Get theRequestDataValueProcessorto use.The default implementation looks in the
ApplicationContextfor aRequestDataValueProcessorbean with the nameREQUEST_DATA_VALUE_PROCESSOR_BEAN_NAME.- Returns:
- the
RequestDataValueProcessor, ornullif there is none in the application context
-
renderInternal
protected abstract reactor.core.publisher.Mono<Void> renderInternal(Map<String, Object> renderAttributes, @Nullable org.springframework.http.MediaType contentType, org.springframework.web.server.ServerWebExchange exchange) Subclasses must implement this method to actually render the view.- Parameters:
renderAttributes- combined output Map (nevernull), with dynamic values taking precedence over static attributescontentType- the content type selected to render with, which should match one of the supported media typesexchange- current exchange- Returns:
- a
Monothat represents when and if rendering succeeds
-
toString
-
formatViewName
-