类 AbstractJackson2View
- java.lang.Object
- org.springframework.context.support.ApplicationObjectSupport
- org.springframework.web.context.support.WebApplicationObjectSupport
- org.springframework.web.servlet.view.AbstractView
- org.springframework.web.servlet.view.json.AbstractJackson2View
- 所有已实现的接口:
Aware
,BeanNameAware
,ApplicationContextAware
,ServletContextAware
,View
public abstract class AbstractJackson2View extends AbstractView
Abstract base class for Jackson based and content type independentAbstractView
implementations.Compatible with Jackson 2.6 and higher, as of Spring 4.3.
- 从以下版本开始:
- 4.1
- 作者:
- Jeremy Grelle, Arjen Poutsma, Rossen Stoyanchev, Juergen Hoeller, Sebastien Deleuze
字段概要
字段 修饰符和类型 字段 说明 protected boolean
updateContentLength
从类继承的字段 org.springframework.web.servlet.view.AbstractView
DEFAULT_CONTENT_TYPE
从类继承的字段 org.springframework.context.support.ApplicationObjectSupport
logger
从接口继承的字段 org.springframework.web.servlet.View
PATH_VARIABLES, RESPONSE_STATUS_ATTRIBUTE, SELECTED_CONTENT_TYPE
构造器概要
构造器 限定符 构造器 说明 protected
AbstractJackson2View(ObjectMapper objectMapper, String contentType)
方法概要
所有方法 实例方法 抽象方法 具体方法 修饰符和类型 方法 说明 protected Object
filterAndWrapModel(Map<String,Object> model, HttpServletRequest request)
Filter and optionally wrap the model inMappingJacksonValue
container.protected abstract Object
filterModel(Map<String,Object> model)
Filter out undesired attributes from the given model.JsonEncoding
getEncoding()
Return theJsonEncoding
for this view.ObjectMapper
getObjectMapper()
Return theObjectMapper
for this view.protected void
prepareResponse(HttpServletRequest request, HttpServletResponse response)
Prepare the given response for rendering.protected void
renderMergedOutputModel(Map<String,Object> model, HttpServletRequest request, HttpServletResponse response)
Subclasses must implement this method to actually render the view.void
setDisableCaching(boolean disableCaching)
Disables caching of the generated JSON.void
setEncoding(JsonEncoding encoding)
Set theJsonEncoding
for this view.abstract void
setModelKey(String modelKey)
Set the attribute in the model that should be rendered by this view.void
setObjectMapper(ObjectMapper objectMapper)
Set theObjectMapper
for this view.void
setPrettyPrint(boolean prettyPrint)
Whether to use the default pretty printer when writing the output.void
setUpdateContentLength(boolean updateContentLength)
Whether to update the 'Content-Length' header of the response.protected void
writeContent(OutputStream stream, Object object)
Write the actual JSON content to the stream.protected void
writePrefix(JsonGenerator generator, Object object)
Write a prefix before the main content.protected void
writeSuffix(JsonGenerator generator, Object object)
Write a suffix after the main content.从类继承的方法 org.springframework.web.servlet.view.AbstractView
addStaticAttribute, createMergedOutputModel, createRequestContext, createTemporaryOutputStream, exposeModelAsRequestAttributes, formatViewName, generatesDownloadContent, getAttributesMap, getBeanName, getContentType, getRequestContextAttribute, getRequestToExpose, getStaticAttributes, isExposePathVariables, render, setAttributes, setAttributesCSV, setAttributesMap, setBeanName, setContentType, setExposeContextBeansAsAttributes, setExposedContextBeanNames, setExposePathVariables, setRequestContextAttribute, setResponseContentType, toString, writeToResponse
从类继承的方法 org.springframework.web.context.support.WebApplicationObjectSupport
getServletContext, getTempDir, getWebApplicationContext, initApplicationContext, initServletContext, isContextRequired, setServletContext
从类继承的方法 org.springframework.context.support.ApplicationObjectSupport
getApplicationContext, getMessageSourceAccessor, initApplicationContext, obtainApplicationContext, requiredContextClass, setApplicationContext
字段详细资料
updateContentLength
protected boolean updateContentLength
构造器详细资料
AbstractJackson2View
protected AbstractJackson2View(ObjectMapper objectMapper, String contentType)
方法详细资料
setObjectMapper
public void setObjectMapper(ObjectMapper objectMapper)
Set theObjectMapper
for this view. If not set, a defaultObjectMapper
will be used.Setting a custom-configured
ObjectMapper
is one way to take further control of the JSON serialization process. The other option is to use Jackson's provided annotations on the types to be serialized, in which case a custom-configured ObjectMapper is unnecessary.
getObjectMapper
public final ObjectMapper getObjectMapper()
Return theObjectMapper
for this view.
setEncoding
public void setEncoding(JsonEncoding encoding)
Set theJsonEncoding
for this view. By default, UTF-8 is used.
getEncoding
public final JsonEncoding getEncoding()
Return theJsonEncoding
for this view.
setPrettyPrint
public void setPrettyPrint(boolean prettyPrint)
Whether to use the default pretty printer when writing the output. This is a shortcut for setting up anObjectMapper
as follows:ObjectMapper mapper = new ObjectMapper(); mapper.configure(SerializationFeature.INDENT_OUTPUT, true);
The default value is
false
.
setDisableCaching
public void setDisableCaching(boolean disableCaching)
Disables caching of the generated JSON.Default is
true
, which will prevent the client from caching the generated JSON.
setUpdateContentLength
public void setUpdateContentLength(boolean updateContentLength)
Whether to update the 'Content-Length' header of the response. When set totrue
, the response is buffered in order to determine the content length and set the 'Content-Length' header of the response.The default setting is
false
.
prepareResponse
protected void prepareResponse(HttpServletRequest request, HttpServletResponse response)
从类复制的说明:AbstractView
Prepare the given response for rendering.The default implementation applies a workaround for an IE bug when sending download content via HTTPS.
- 覆盖:
prepareResponse
在类中AbstractView
- 参数:
request
- current HTTP requestresponse
- current HTTP response
renderMergedOutputModel
protected void renderMergedOutputModel(Map<String,Object> model, HttpServletRequest request, HttpServletResponse response) throws Exception
从类复制的说明:AbstractView
Subclasses must implement this method to actually render the view.The first step will be preparing the request: In the JSP case, this would mean setting model objects as request attributes. The second step will be the actual rendering of the view, for example including the JSP via a RequestDispatcher.
- 指定者:
renderMergedOutputModel
在类中AbstractView
- 参数:
model
- combined output Map (nevernull
), with dynamic values taking precedence over static attributesrequest
- current HTTP requestresponse
- current HTTP response- 抛出:
Exception
- if rendering failed
filterAndWrapModel
protected Object filterAndWrapModel(Map<String,Object> model, HttpServletRequest request)
Filter and optionally wrap the model inMappingJacksonValue
container.- 参数:
model
- the model, as passed on torenderMergedOutputModel(java.util.Map<java.lang.String, java.lang.Object>, javax.servlet.http.HttpServletRequest, javax.servlet.http.HttpServletResponse)
request
- current HTTP request- 返回:
- the wrapped or unwrapped value to be rendered
writeContent
protected void writeContent(OutputStream stream, Object object) throws IOException
Write the actual JSON content to the stream.- 参数:
stream
- the output stream to useobject
- the value to be rendered, as returned fromfilterModel(java.util.Map<java.lang.String, java.lang.Object>)
- 抛出:
IOException
- if writing failed
setModelKey
public abstract void setModelKey(String modelKey)
Set the attribute in the model that should be rendered by this view. When set, all other model attributes will be ignored.
filterModel
protected abstract Object filterModel(Map<String,Object> model)
Filter out undesired attributes from the given model. The return value can be either anotherMap
or a single value object.- 参数:
model
- the model, as passed on torenderMergedOutputModel(java.util.Map<java.lang.String, java.lang.Object>, javax.servlet.http.HttpServletRequest, javax.servlet.http.HttpServletResponse)
- 返回:
- the value to be rendered
writePrefix
protected void writePrefix(JsonGenerator generator, Object object) throws IOException
Write a prefix before the main content.- 参数:
generator
- the generator to use for writing content.object
- the object to write to the output message.- 抛出:
IOException
writeSuffix
protected void writeSuffix(JsonGenerator generator, Object object) throws IOException
Write a suffix after the main content.- 参数:
generator
- the generator to use for writing content.object
- the object to write to the output message.- 抛出:
IOException