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_TYPEJSONP のデフォルトのコンテンツ型: "application/javascript"。 |
updateContentLengthloggerPATH_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, writeContentaddStaticAttribute, createMergedOutputModel, createRequestContext, createTemporaryOutputStream, exposeModelAsRequestAttributes, generatesDownloadContent, getAttributesMap, getBeanName, getContentType, getRequestContextAttribute, getRequestToExpose, getStaticAttributes, isExposePathVariables, render, setAttributes, setAttributesCSV, setAttributesMap, setBeanName, setContentType, setExposeContextBeansAsAttributes, setExposedContextBeanNames, setExposePathVariables, setRequestContextAttribute, toString, writeToResponsegetServletContext, getTempDir, getWebApplicationContext, initApplicationContext, initServletContext, isContextRequired, setServletContextgetApplicationContext, getMessageSourceAccessor, initApplicationContext, obtainApplicationContext, requiredContextClass, setApplicationContextcloneSE, equalsSE, finalizeSE, getClassSE, hashCodeSE, notifySE, notifyAllSE, waitSE, waitSE, waitSEpublic 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 - 照会パラメーター値、決して nullprotected ObjectSE filterModel(MapSE<StringSE,ObjectSE> model)
MapSE または単一の値オブジェクトのいずれかです。 デフォルトの実装では、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)
AbstractJackson2ViewMappingJacksonValue コンテナーでモデルをフィルターし、オプションでラップします。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
AbstractJackson2ViewAbstractJackson2View の writePrefix generator - コンテンツの書き込みに使用するジェネレーター。object - 出力メッセージに書き込むオブジェクト。IOExceptionSEprotected void writeSuffix(JsonGenerator generator, ObjectSE object) throws IOExceptionSE
AbstractJackson2ViewAbstractJackson2View の writeSuffix generator - コンテンツの書き込みに使用するジェネレーター。object - 出力メッセージに書き込むオブジェクト。IOExceptionSEprotected void setResponseContentType(HttpServletRequestEE request, HttpServletResponseEE response)
AbstractViewView.SELECTED_CONTENT_TYPE リクエスト属性が存在し、具体的なメディア型に設定されていない限り、構成された content type にレスポンスのコンテンツ型を設定します。AbstractView の setResponseContentType