public class MappingJackson2JsonView extends AbstractJackson2View
View
は、Jackson 2 ObjectMapper
を使用して現在のリクエストのモデルをシリアライズすることで JSON コンテンツをレンダリングします。 デフォルトでは、モデルマップのコンテンツ全体(フレームワーク固有のクラスを除く)は JSON としてエンコードされます。モデルに含まれるキーが 1 つのみの場合は、setExtractValueFromSingleKeyModel(boolean)
を介して JSON のみとしてエンコードされた抽出することができます
デフォルトのコンストラクターは、Jackson2ObjectMapperBuilder
が提供するデフォルトの構成を使用します。
Spring 4.3 の時点で、Jackson 2.6 以降と互換性があります。
修飾子と型 | フィールドと説明 |
---|---|
static StringSE | DEFAULT_CONTENT_TYPE デフォルトのコンテンツ型: "application/json". |
static StringSE | DEFAULT_JSONP_CONTENT_TYPE JSONP のデフォルトのコンテンツ型: "application/javascript"。 |
updateContentLength
logger
PATH_VARIABLES, RESPONSE_STATUS_ATTRIBUTE, SELECTED_CONTENT_TYPE
コンストラクターと説明 |
---|
MappingJackson2JsonView() Jackson2ObjectMapperBuilder によって提供されるデフォルト構成を使用して、コンテンツ型を application/json に設定して、新しい MappingJackson2JsonView を構築します。 |
MappingJackson2JsonView(ObjectMapper objectMapper) |
修飾子と型 | メソッドと説明 |
---|---|
protected ObjectSE | filterAndWrapModel(MapSE<StringSE, ObjectSE> model, HttpServletRequestEE request) MappingJacksonValue コンテナーでモデルをフィルターし、オプションでラップします。 |
protected ObjectSE | filterModel(MapSE<StringSE, ObjectSE> model) 指定されたモデルから不要な属性を除外します。 |
SetSE<StringSE> | getModelKeys() このビューによってレンダリングされるモデルの属性を返します。 |
protected boolean | isValidJsonpQueryParam(StringSE value) jsonp クエリパラメーター値を検証します。 |
void | setExtractValueFromSingleKeyModel(boolean extractValueFromSingleKeyModel) 単一の属性を含むモデルをマップとして直列化するか、モデルから単一の値を抽出して直接直列化するかを設定します。 |
void | setJsonpParameterNames(SetSE<StringSE> jsonpParameterNames) JSONP リクエストのパラメーター名を設定します。 |
void | setJsonPrefix(StringSE jsonPrefix) このビューの JSON 出力に使用するカスタムプレフィックスを指定します。 |
void | setModelKey(StringSE modelKey) このビューによってレンダリングされるモデルの属性を設定します。 |
void | setModelKeys(SetSE<StringSE> modelKeys) このビューによってレンダリングされるモデルの属性を設定します。 |
void | setPrefixJson(boolean prefixJson) このビューによる JSON 出力の前に ")]} '、" を付ける必要があるかどうかを示します。 |
protected void | setResponseContentType(HttpServletRequestEE request, HttpServletResponseEE response) View.SELECTED_CONTENT_TYPE リクエスト属性が存在し、具体的なメディア型に設定されていない限り、構成された content type にレスポンスのコンテンツ型を設定します。 |
protected void | writePrefix(JsonGenerator generator, ObjectSE object) メインコンテンツの前にプレフィックスを書きます。 |
protected void | writeSuffix(JsonGenerator generator, ObjectSE object) メインコンテンツの後にサフィックスを記述します。 |
getEncoding, getObjectMapper, prepareResponse, renderMergedOutputModel, setDisableCaching, setEncoding, setObjectMapper, setPrettyPrint, setUpdateContentLength, writeContent
addStaticAttribute, createMergedOutputModel, createRequestContext, createTemporaryOutputStream, exposeModelAsRequestAttributes, generatesDownloadContent, getAttributesMap, getBeanName, getContentType, getRequestContextAttribute, getRequestToExpose, getStaticAttributes, isExposePathVariables, render, setAttributes, setAttributesCSV, setAttributesMap, setBeanName, setContentType, setExposeContextBeansAsAttributes, setExposedContextBeanNames, setExposePathVariables, setRequestContextAttribute, toString, writeToResponse
getServletContext, getTempDir, getWebApplicationContext, initApplicationContext, initServletContext, isContextRequired, setServletContext
getApplicationContext, getMessageSourceAccessor, initApplicationContext, obtainApplicationContext, requiredContextClass, setApplicationContext
cloneSE, equalsSE, finalizeSE, getClassSE, hashCodeSE, notifySE, notifyAllSE, waitSE, waitSE, waitSE
public static final StringSE DEFAULT_CONTENT_TYPE
AbstractView.setContentType(java.lang.String)
を介してオーバーライドできます。public MappingJackson2JsonView()
Jackson2ObjectMapperBuilder
によって提供されるデフォルト構成を使用して、コンテンツ型を application/json
に設定して、新しい MappingJackson2JsonView
を構築します。public MappingJackson2JsonView(ObjectMapper objectMapper)
public void setJsonPrefix(StringSE jsonPrefix)
public void setPrefixJson(boolean prefixJson)
false
です。この方法で JSON 文字列のプレフィックスを使用すると、JSON ハイジャックを防ぐことができます。プレフィックスは、文字列をスクリプトとして構文的に無効にして、ハイジャックできないようにします。このプレフィックスは、文字列を JSON として解析する前に削除する必要があります。
public void setModelKey(StringSE modelKey)
AbstractJackson2View
の setModelKey
public void setModelKeys(@Nullable SetSE<StringSE> modelKeys)
public void setExtractValueFromSingleKeyModel(boolean extractValueFromSingleKeyModel)
このフラグを設定することの効果は、MappingJackson2HttpMessageConverter
を @ResponseBody
リクエスト処理メソッドとともに使用することに似ています。
デフォルトは false
です。
public void setJsonpParameterNames(SetSE<StringSE> jsonpParameterNames)
デフォルトで設定されているパラメーター名は "jsonp" と "callback" です。
protected boolean isValidJsonpQueryParam(StringSE value)
value
- 照会パラメーター値、決して null
protected ObjectSE filterModel(MapSE<StringSE,ObjectSE> model)
Map
SE または単一の値オブジェクトのいずれかです。 デフォルトの実装では、BindingResult
インスタンスと、renderedAttributes
プロパティに含まれていないエントリが削除されます。
AbstractJackson2View
の filterModel
model
- AbstractJackson2View.renderMergedOutputModel(java.util.Map<java.lang.String, java.lang.Object>, javax.servlet.http.HttpServletRequest, javax.servlet.http.HttpServletResponse)
に渡されるモデル protected ObjectSE filterAndWrapModel(MapSE<StringSE,ObjectSE> model, HttpServletRequestEE request)
AbstractJackson2View
MappingJacksonValue
コンテナーでモデルをフィルターし、オプションでラップします。AbstractJackson2View
の filterAndWrapModel
model
- AbstractJackson2View.renderMergedOutputModel(java.util.Map<java.lang.String, java.lang.Object>, javax.servlet.http.HttpServletRequest, javax.servlet.http.HttpServletResponse)
に渡されるモデル request
- 現在の HTTP リクエスト protected void writePrefix(JsonGenerator generator, ObjectSE object) throws IOExceptionSE
AbstractJackson2View
AbstractJackson2View
の writePrefix
generator
- コンテンツの書き込みに使用するジェネレーター。object
- 出力メッセージに書き込むオブジェクト。IOExceptionSE
protected void writeSuffix(JsonGenerator generator, ObjectSE object) throws IOExceptionSE
AbstractJackson2View
AbstractJackson2View
の writeSuffix
generator
- コンテンツの書き込みに使用するジェネレーター。object
- 出力メッセージに書き込むオブジェクト。IOExceptionSE
protected void setResponseContentType(HttpServletRequestEE request, HttpServletResponseEE response)
AbstractView
View.SELECTED_CONTENT_TYPE
リクエスト属性が存在し、具体的なメディア型に設定されていない限り、構成された content type
にレスポンスのコンテンツ型を設定します。AbstractView
の setResponseContentType