クラス AbstractJacksonView

実装されているすべてのインターフェース:
Aware, BeanNameAware, ApplicationContextAware, ServletContextAware, View
既知の直属サブクラス
JacksonJsonView, JacksonXmlView

public abstract class AbstractJacksonView extends AbstractView
Jackson 3.x ベースおよびコンテンツ型に依存しない AbstractView 実装の抽象基本クラス。

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

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

    • JSON_VIEW_HINT

      protected static final StringSE JSON_VIEW_HINT
    • FILTER_PROVIDER_HINT

      protected static final StringSE FILTER_PROVIDER_HINT
    • updateContentLength

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

    • AbstractJacksonView

      protected AbstractJacksonView(tools.jackson.databind.cfg.MapperBuilder<?,?> builder, StringSE contentType)
    • AbstractJacksonView

      protected AbstractJacksonView(tools.jackson.databind.ObjectMapper mapper, StringSE contentType)
  • メソッドの詳細

    • setEncoding

      public void setEncoding(tools.jackson.core.JsonEncoding encoding)
      このビューの JsonEncoding を設定します。

      デフォルトは UTF-8 です。

    • getEncoding

      public final tools.jackson.core.JsonEncoding getEncoding()
      このビューの JsonEncoding を返します。
    • setDisableCaching

      public void setDisableCaching(boolean disableCaching)
      生成された JSON のキャッシュを無効にします。

      デフォルトは true で、クライアントは生成された JSON をキャッシュできません。

    • setUpdateContentLength

      public void setUpdateContentLength(boolean updateContentLength)
      レスポンスの "Content-Length" ヘッダーを更新するかどうか。true に設定すると、コンテンツの長さを判別し、レスポンスの 'Content-Length' ヘッダーを設定するために、レスポンスがバッファーに入れられます。

      デフォルト設定は false です。

    • prepareResponse

      protected void prepareResponse(jakarta.servlet.http.HttpServletRequest request, jakarta.servlet.http.HttpServletResponse response)
      クラスからコピーされた説明: AbstractView
      レンダリングのために指定されたレスポンスを準備します。

      デフォルトの実装では、HTTPS 経由でダウンロードコンテンツを送信するときに IE バグの回避策が適用されます。

      オーバーライド:
      クラス AbstractViewprepareResponse 
      パラメーター:
      request - 現在の HTTP リクエスト
      response - 現在の HTTP レスポンス
    • renderMergedOutputModel

      protected void renderMergedOutputModel(MapSE<StringSE,ObjectSE> model, jakarta.servlet.http.HttpServletRequest request, jakarta.servlet.http.HttpServletResponse response) throws ExceptionSE
      クラスからコピーされた説明: AbstractView
      ビューを実際にレンダリングするには、サブクラスでこのメソッドを実装する必要があります。

      最初のステップは、リクエストの準備です。JSP の場合、これはモデルオブジェクトをリクエスト属性として設定することを意味します。2 番目のステップは、たとえば RequestDispatcher を介した JSP を含む、実際のビューのレンダリングです。

      次で指定:
      クラス AbstractViewrenderMergedOutputModel 
      パラメーター:
      model - 静的な属性よりも動的な値が優先される、結合された出力マップ(非 null
      request - 現在の HTTP リクエスト
      response - 現在の HTTP レスポンス
      例外:
      ExceptionSE - レンダリングに失敗した場合
    • writeContent

      protected void writeContent(OutputStreamSE stream, ObjectSE object, @Nullable MapSE<StringSE,ObjectSE> hints) throws IOExceptionSE
      実際の JSON コンテンツをストリームに書き込みます。
      パラメーター:
      stream - 使用する出力ストリーム
      object - filterModel(Map, HttpServletRequest) から返された、レンダリングされる値
      hints - データを直列化する方法に関する追加情報
      例外:
      IOExceptionSE - 書き込みに失敗した場合
    • setModelKey

      public abstract void setModelKey(StringSE modelKey)
      このビューによってレンダリングされるモデルの属性を設定します。

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

    • filterModel

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

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

      パラメーター:
      model - renderMergedOutputModel(Map, HttpServletRequest, HttpServletResponse) に渡されるモデル
      request - 現在の HTTP リクエスト
      戻り値:
      レンダリングされる値
    • writePrefix

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

      protected void writeSuffix(tools.jackson.core.JsonGenerator generator, ObjectSE object) throws IOExceptionSE
      メインコンテンツの後にサフィックスを記述します。
      パラメーター:
      generator - コンテンツを書くために使用するジェネレーター
      object - 出力メッセージに書き込むオブジェクト
      例外:
      IOExceptionSE