public abstract class AbstractView extends java.lang.Object implements View, ApplicationContextAware
View
implementations.Modifier and Type | Field and Description |
---|---|
private ApplicationContext |
applicationContext |
private java.nio.charset.Charset |
defaultCharset |
protected Log |
logger
Logger that is available to subclasses
|
private java.util.List<MediaType> |
mediaTypes |
static java.lang.String |
REQUEST_DATA_VALUE_PROCESSOR_BEAN_NAME
Well-known name for the RequestDataValueProcessor in the bean factory
|
private java.lang.String |
requestContextAttribute |
Constructor and Description |
---|
AbstractView() |
Modifier and Type | Method and Description |
---|---|
protected RequestContext |
createRequestContext(ServerWebExchange exchange,
java.util.Map<java.lang.String,java.lang.Object> model)
Create a RequestContext to expose under the specified attribute name.
|
ApplicationContext |
getApplicationContext() |
java.nio.charset.Charset |
getDefaultCharset()
Return the default charset, used when the
content type does not contain one.
|
protected java.util.Map<java.lang.String,java.lang.Object> |
getModelAttributes(java.util.Map<java.lang.String,?> model,
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<MediaType> |
getSupportedMediaTypes()
Return the configured media types supported by this view.
|
<any> |
render(java.util.Map<java.lang.String,?> model,
MediaType contentType,
ServerWebExchange exchange)
Prepare the model to render.
|
protected abstract <any> |
renderInternal(java.util.Map<java.lang.String,java.lang.Object> renderAttributes,
MediaType contentType,
ServerWebExchange exchange)
Subclasses must implement this method to actually render the view.
|
void |
setApplicationContext(ApplicationContext applicationContext)
Set the ApplicationContext that this object runs in.
|
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<MediaType> supportedMediaTypes)
Set the supported media types for this view.
|
java.lang.String |
toString() |
public static final java.lang.String REQUEST_DATA_VALUE_PROCESSOR_BEAN_NAME
protected final Log logger
private final java.util.List<MediaType> mediaTypes
private java.nio.charset.Charset defaultCharset
private java.lang.String requestContextAttribute
private ApplicationContext applicationContext
public void setSupportedMediaTypes(java.util.List<MediaType> supportedMediaTypes)
public java.util.List<MediaType> getSupportedMediaTypes()
getSupportedMediaTypes
in interface View
public void setDefaultCharset(java.nio.charset.Charset defaultCharset)
public java.nio.charset.Charset getDefaultCharset()
public void setRequestContextAttribute(java.lang.String requestContextAttribute)
public java.lang.String getRequestContextAttribute()
public void setApplicationContext(ApplicationContext applicationContext)
ApplicationContextAware
Invoked after population of normal bean properties but before an init callback such
as InitializingBean.afterPropertiesSet()
or a custom init-method. Invoked after ResourceLoaderAware.setResourceLoader(org.springframework.core.io.ResourceLoader)
,
ApplicationEventPublisherAware.setApplicationEventPublisher(org.springframework.context.ApplicationEventPublisher)
and
MessageSourceAware
, if applicable.
setApplicationContext
in interface ApplicationContextAware
applicationContext
- the ApplicationContext object to be used by this objectBeanInitializationException
public ApplicationContext getApplicationContext()
public <any> render(java.util.Map<java.lang.String,?> model, MediaType contentType, ServerWebExchange exchange)
render
in interface View
model
- 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 java.util.Map<java.lang.String,java.lang.Object> getModelAttributes(java.util.Map<java.lang.String,?> model, ServerWebExchange exchange)
The default implementation creates a combined output Map that includes model as well as static attributes with the former taking precedence.
protected RequestContext createRequestContext(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)
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 <any> renderInternal(java.util.Map<java.lang.String,java.lang.Object> renderAttributes, MediaType contentType, 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