クラス JacksonJsonView

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

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

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

次の特殊なモデルエントリがサポートされています。

  • com.fasterxml.jackson.annotation.JsonView キーと、JSON ビューのクラス名を値として持つ JSON ビュー。
  • tools.jackson.databind.ser.FilterProvider キーとフィルタープロバイダークラス名を値として持つフィルタープロバイダー。
導入:
7.0
作成者:
Sebastien Deleuze
  • フィールドの詳細

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

  • メソッドの詳細

    • setJsonPrefix

      public void setJsonPrefix(StringSE jsonPrefix)
      このビューの JSON 出力に使用するカスタムプレフィックスを指定します。

      デフォルトはなしです。

      関連事項:
    • setPrefixJson

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

      デフォルトは false です。

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

      関連事項:
    • setModelKey

      public void setModelKey(StringSE modelKey)
      クラスからコピーされた説明: AbstractJacksonView
      このビューによってレンダリングされるモデルの属性を設定します。

      設定すると、他のすべてのモデル属性は無視されます。

      次で指定:
      クラス AbstractJacksonViewsetModelKey 
    • setModelKeys

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

      設定すると、他のすべてのモデル属性は無視されます。

    • getModelKeys

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

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

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

      デフォルトは false です。

    • filterModel

      protected ObjectSE filterModel(MapSE<StringSE,ObjectSE> model, HttpServletRequestEE request)
      指定されたモデルから不要な属性を除外します。

      戻り値は、別の MapSE または単一値オブジェクトのいずれかになります。

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

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

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