クラス MappingJackson2JsonView

実装されたすべてのインターフェース:
AwareBeanNameAwareApplicationContextAwareServletContextAwareView

public class MappingJackson2JsonView extends AbstractJackson2View
Spring MVC View は、Jackson 2 ObjectMapper を使用して現在のリクエストのモデルをシリアライズすることで JSON コンテンツをレンダリングします。

デフォルトでは、モデルマップのコンテンツ全体(フレームワーク固有のクラスを除く)は JSON としてエンコードされます。モデルに含まれるキーが 1 つのみの場合は、setExtractValueFromSingleKeyModel(boolean) を介して JSON のみとしてエンコードされた抽出することができます

デフォルトのコンストラクターは、Jackson2ObjectMapperBuilder が提供するデフォルトの構成を使用します。

導入:
3.1.2
作成者:
Jeremy Grelle, Arjen Poutsma, Rossen Stoyanchev, Juergen Hoeller, Sebastien Deleuze
  • フィールドの詳細

  • コンストラクターの詳細

    • MappingJackson2JsonView

      public MappingJackson2JsonView()
      Jackson2ObjectMapperBuilder によって提供されるデフォルト構成を使用して、コンテンツ型を application/json に設定して、新しい MappingJackson2JsonView を構築します。
    • MappingJackson2JsonView

      public MappingJackson2JsonView(ObjectMapper objectMapper)
      提供された ObjectMapper を使用して新しい MappingJackson2JsonView を構築し、コンテンツ型を application/json に設定します。
      導入:
      4.2.1
  • メソッドの詳細

    • setJsonPrefix

      public void setJsonPrefix(StringSE jsonPrefix)
      このビューの JSON 出力に使用するカスタムプレフィックスを指定します。デフォルトはなしです。
      関連事項:
    • setPrefixJson

      public void setPrefixJson(boolean prefixJson)
      このビューによる JSON 出力に接頭辞 ")]}', " を付ける必要があるかどうかを示します。デフォルトは false です。

      この方法で JSON 文字列のプレフィックスを使用すると、JSON ハイジャックを防ぐことができます。プレフィックスは、文字列をスクリプトとして構文的に無効にして、ハイジャックできないようにします。このプレフィックスは、文字列を JSON として解析する前に削除する必要があります。

      関連事項:
    • setModelKey

      public void setModelKey(StringSE modelKey)
      クラスからコピーされた説明: AbstractJackson2View
      このビューによってレンダリングされるモデルの属性を設定します。設定すると、他のすべてのモデル属性は無視されます。
      次で指定:
      クラス AbstractJackson2ViewsetModelKey 
    • setModelKeys

      public void setModelKeys(@Nullable SetSE<StringSE> modelKeys)
      このビューによってレンダリングされるモデルの属性を設定します。設定すると、他のすべてのモデル属性は無視されます。
    • getModelKeys

      @Nullable public final SetSE<StringSE> getModelKeys()
      このビューによってレンダリングされるモデルの属性を返します。
    • setExtractValueFromSingleKeyModel

      public void setExtractValueFromSingleKeyModel(boolean extractValueFromSingleKeyModel)
      単一の属性を含むモデルをマップとして直列化するか、モデルから単一の値を抽出して直接直列化するかを設定します。

      このフラグを設定することの効果は、MappingJackson2HttpMessageConverter を @ResponseBody リクエスト処理メソッドとともに使用することに似ています。

      デフォルトは false です。

    • filterModel

      protected ObjectSE filterModel(MapSE<StringSE,ObjectSE> model)
      指定されたモデルから不要な属性を除外します。戻り値は、別の MapSE または単一の値オブジェクトのいずれかです。

      デフォルトの実装では、BindingResult インスタンスと、modelKeys プロパティに含まれていないエントリが削除されます。

      次で指定:
      クラス AbstractJackson2ViewfilterModel 
      パラメーター:
      model - AbstractJackson2View.renderMergedOutputModel(java.util.Map<java.lang.String, java.lang.Object>, jakarta.servlet.http.HttpServletRequest, jakarta.servlet.http.HttpServletResponse) に渡されるモデル
      戻り値:
      レンダリングされる値
    • writePrefix

      protected void writePrefix(JsonGenerator generator, ObjectSE object) throws IOExceptionSE
      クラスからコピーされた説明: AbstractJackson2View
      メインコンテンツの前にプレフィックスを書きます。
      オーバーライド:
      クラス AbstractJackson2ViewwritePrefix 
      パラメーター:
      generator - コンテンツの書き込みに使用するジェネレーター。
      object - 出力メッセージに書き込むオブジェクト。
      例外:
      IOExceptionSE