public abstract class AbstractView extends java.lang.Object implements View, org.springframework.context.ApplicationContextAware
View implementations.| Modifier and Type | Field and Description |
|---|---|
protected Log |
logger
Logger that is available to subclasses
|
static java.lang.String |
REQUEST_DATA_VALUE_PROCESSOR_BEAN_NAME
Well-known name for the RequestDataValueProcessor in the bean factory
|
| Constructor and Description |
|---|
AbstractView() |
AbstractView(org.springframework.core.ReactiveAdapterRegistry registry) |
| Modifier and Type | Method and Description |
|---|---|
protected RequestContext |
createRequestContext(org.springframework.web.server.ServerWebExchange exchange,
java.util.Map<java.lang.String,java.lang.Object> model)
Create a RequestContext to expose under the specified attribute name.
|
org.springframework.context.ApplicationContext |
getApplicationContext() |
java.nio.charset.Charset |
getDefaultCharset()
Return the default charset, used when the
content type does not contain one.
|
protected reactor.core.publisher.Mono<java.util.Map<java.lang.String,java.lang.Object>> |
getModelAttributes(java.util.Map<java.lang.String,?> model,
org.springframework.web.server.ServerWebExchange exchange)
Prepare the model to use for rendering.
|
java.lang.String |
getRequestContextAttribute()
Return the name of the RequestContext attribute, if any.
|
protected RequestDataValueProcessor |
getRequestDataValueProcessor()
Return the
RequestDataValueProcessor to use. |
java.util.List<org.springframework.http.MediaType> |
getSupportedMediaTypes()
Return the configured media types supported by this view.
|
protected org.springframework.context.ApplicationContext |
obtainApplicationContext()
Obtain the ApplicationContext for actual use.
|
reactor.core.publisher.Mono<java.lang.Void> |
render(java.util.Map<java.lang.String,?> model,
org.springframework.http.MediaType contentType,
org.springframework.web.server.ServerWebExchange exchange)
Prepare the model to render.
|
protected abstract reactor.core.publisher.Mono<java.lang.Void> |
renderInternal(java.util.Map<java.lang.String,java.lang.Object> renderAttributes,
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<java.lang.Void> |
resolveAsyncAttributes(java.util.Map<java.lang.String,java.lang.Object> model)
By default, resolve async attributes supported by the
ReactiveAdapterRegistry to their blocking counterparts. |
void |
setApplicationContext(org.springframework.context.ApplicationContext applicationContext) |
void |
setDefaultCharset(java.nio.charset.Charset defaultCharset)
Set the default charset for this view, used when the
content type does not contain one.
|
void |
setRequestContextAttribute(java.lang.String requestContextAttribute)
Set the name of the RequestContext attribute for this view.
|
void |
setSupportedMediaTypes(java.util.List<org.springframework.http.MediaType> supportedMediaTypes)
Set the supported media types for this view.
|
java.lang.String |
toString() |
clone, equals, finalize, getClass, hashCode, notify, notifyAll, wait, wait, waitisRedirectViewpublic static final java.lang.String REQUEST_DATA_VALUE_PROCESSOR_BEAN_NAME
protected final Log logger
public AbstractView()
public AbstractView(org.springframework.core.ReactiveAdapterRegistry registry)
public void setSupportedMediaTypes(java.util.List<org.springframework.http.MediaType> supportedMediaTypes)
public java.util.List<org.springframework.http.MediaType> getSupportedMediaTypes()
getSupportedMediaTypes in interface Viewpublic void setDefaultCharset(java.nio.charset.Charset defaultCharset)
public java.nio.charset.Charset getDefaultCharset()
public void setRequestContextAttribute(@Nullable
java.lang.String requestContextAttribute)
@Nullable public java.lang.String getRequestContextAttribute()
public void setApplicationContext(@Nullable
org.springframework.context.ApplicationContext applicationContext)
setApplicationContext in interface org.springframework.context.ApplicationContextAware@Nullable public org.springframework.context.ApplicationContext getApplicationContext()
protected final org.springframework.context.ApplicationContext obtainApplicationContext()
null)java.lang.IllegalStateException - in case of no ApplicationContext setpublic reactor.core.publisher.Mono<java.lang.Void> render(@Nullable
java.util.Map<java.lang.String,?> model,
@Nullable
org.springframework.http.MediaType contentType,
org.springframework.web.server.ServerWebExchange exchange)
render in interface Viewmodel - Map with name Strings as keys and corresponding model
objects as values (Map can also be null in case of empty model)contentType - the content type selected to render with which should
match one of the supported media types.exchange - the current exchangeMono to represent when and if rendering succeedsprotected reactor.core.publisher.Mono<java.util.Map<java.lang.String,java.lang.Object>> getModelAttributes(@Nullable
java.util.Map<java.lang.String,?> model,
org.springframework.web.server.ServerWebExchange exchange)
The default implementation creates a combined output Map that includes model as well as static attributes with the former taking precedence.
protected reactor.core.publisher.Mono<java.lang.Void> resolveAsyncAttributes(java.util.Map<java.lang.String,java.lang.Object> model)
ReactiveAdapterRegistry to their blocking counterparts.
View implementations capable of taking advantage of reactive types can override this method if needed.
Mono for the completion of async attributes resolutionprotected RequestContext createRequestContext(org.springframework.web.server.ServerWebExchange exchange, java.util.Map<java.lang.String,java.lang.Object> model)
The default implementation creates a standard RequestContext instance for the given request and model. Can be overridden in subclasses for custom instances.
exchange - current exchangemodel - combined output Map (never null),
with dynamic values taking precedence over static attributessetRequestContextAttribute(java.lang.String)@Nullable protected RequestDataValueProcessor getRequestDataValueProcessor()
RequestDataValueProcessor to use.
The default implementation looks in the Spring configuration for a RequestDataValueProcessor bean with
the name REQUEST_DATA_VALUE_PROCESSOR_BEAN_NAME.
protected abstract reactor.core.publisher.Mono<java.lang.Void> renderInternal(java.util.Map<java.lang.String,java.lang.Object> renderAttributes,
@Nullable
org.springframework.http.MediaType contentType,
org.springframework.web.server.ServerWebExchange exchange)
renderAttributes - combined output Map (never null),
with dynamic values taking precedence over static attributescontentType - the content type selected to render with which should
match one of the supported media types.exchange - current exchange @return Mono to represent when
and if rendering succeedspublic java.lang.String toString()
toString in class java.lang.Object