public class MappingJackson2JsonView extends AbstractJackson2View
View
は、Jackson 2 ObjectMapper
を使用して現在のリクエストのモデルをシリアライズすることで JSON コンテンツをレンダリングします。 デフォルトでは、モデルマップのコンテンツ全体(フレームワーク固有のクラスを除く)は JSON としてエンコードされます。モデルに含まれるキーが 1 つのみの場合は、setExtractValueFromSingleKeyModel(boolean)
を介して JSON のみとしてエンコードされた抽出することができます
デフォルトのコンストラクターは、Jackson2ObjectMapperBuilder
が提供するデフォルトの構成を使用します。
Spring 4.3 の時点で、Jackson 2.6 以降と互換性があります。
修飾子と型 | フィールドと説明 |
---|---|
static java.lang.String | DEFAULT_CONTENT_TYPE デフォルトのコンテンツ型: "application/json". |
updateContentLength
logger
PATH_VARIABLES, RESPONSE_STATUS_ATTRIBUTE, SELECTED_CONTENT_TYPE
コンストラクターと説明 |
---|
MappingJackson2JsonView() Jackson2ObjectMapperBuilder によって提供されるデフォルト構成を使用して、コンテンツ型を application/json に設定して、新しい MappingJackson2JsonView を構築します。 |
MappingJackson2JsonView(ObjectMapper objectMapper) |
修飾子と型 | メソッドと説明 |
---|---|
protected java.lang.Object | filterModel(java.util.Map<java.lang.String,java.lang.Object> model) 指定されたモデルから不要な属性を除外します。 |
java.util.Set<java.lang.String> | getModelKeys() このビューによってレンダリングされるモデルの属性を返します。 |
void | setExtractValueFromSingleKeyModel(boolean extractValueFromSingleKeyModel) 単一の属性を含むモデルをマップとして直列化するか、モデルから単一の値を抽出して直接直列化するかを設定します。 |
void | setJsonPrefix(java.lang.String jsonPrefix) このビューの JSON 出力に使用するカスタムプレフィックスを指定します。 |
void | setModelKey(java.lang.String modelKey) このビューによってレンダリングされるモデルの属性を設定します。 |
void | setModelKeys(java.util.Set<java.lang.String> modelKeys) このビューによってレンダリングされるモデルの属性を設定します。 |
void | setPrefixJson(boolean prefixJson) このビューによる JSON 出力の前に ")]} '、" を付ける必要があるかどうかを示します。 |
protected void | writePrefix(JsonGenerator generator, java.lang.Object object) メインコンテンツの前にプレフィックスを書きます。 |
filterAndWrapModel, getEncoding, getObjectMapper, prepareResponse, renderMergedOutputModel, setDisableCaching, setEncoding, setObjectMapper, setPrettyPrint, setUpdateContentLength, writeContent, writeSuffix
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
getServletContext, getTempDir, getWebApplicationContext, initApplicationContext, initServletContext, isContextRequired, setServletContext
getApplicationContext, getMessageSourceAccessor, initApplicationContext, obtainApplicationContext, requiredContextClass, setApplicationContext
public static final java.lang.String DEFAULT_CONTENT_TYPE
AbstractView.setContentType(java.lang.String)
を介してオーバーライドできます。public MappingJackson2JsonView()
Jackson2ObjectMapperBuilder
によって提供されるデフォルト構成を使用して、コンテンツ型を application/json
に設定して、新しい MappingJackson2JsonView
を構築します。public MappingJackson2JsonView(ObjectMapper objectMapper)
public void setJsonPrefix(java.lang.String jsonPrefix)
public void setPrefixJson(boolean prefixJson)
false
です。この方法で JSON 文字列のプレフィックスを使用すると、JSON ハイジャックを防ぐことができます。プレフィックスは、文字列をスクリプトとして構文的に無効にして、ハイジャックできないようにします。このプレフィックスは、文字列を JSON として解析する前に削除する必要があります。
public void setModelKey(java.lang.String modelKey)
AbstractJackson2View
の setModelKey
public void setModelKeys(@Nullable java.util.Set<java.lang.String> modelKeys)
@Nullable public final java.util.Set<java.lang.String> getModelKeys()
public void setExtractValueFromSingleKeyModel(boolean extractValueFromSingleKeyModel)
このフラグを設定することの効果は、MappingJackson2HttpMessageConverter
を @ResponseBody
リクエスト処理メソッドとともに使用することに似ています。
デフォルトは false
です。
protected java.lang.Object filterModel(java.util.Map<java.lang.String,java.lang.Object> model)
Map
または単一値オブジェクトのいずれかです。 デフォルトの実装では、BindingResult
インスタンスと、modelKeys
プロパティに含まれていないエントリが削除されます。
AbstractJackson2View
の filterModel
model
- AbstractJackson2View.renderMergedOutputModel(java.util.Map<java.lang.String, java.lang.Object>, javax.servlet.http.HttpServletRequest, javax.servlet.http.HttpServletResponse)
に渡されるモデル protected void writePrefix(JsonGenerator generator, java.lang.Object object) throws java.io.IOException
AbstractJackson2View
AbstractJackson2View
の writePrefix
generator
- コンテンツの書き込みに使用するジェネレーター。object
- 出力メッセージに書き込むオブジェクト。java.io.IOException