クラス SessionAttributesHandler

java.lang.ObjectSE
org.springframework.web.method.annotation.SessionAttributesHandler

public class SessionAttributesHandler extends ObjectSE
@SessionAttributes を介して宣言されたコントローラー固有のセッション属性を管理します。実際のストレージは SessionAttributeStore インスタンスに委譲されます。

@SessionAttributes アノテーションが付けられたコントローラーがモデルに属性を追加すると、それらの属性は @SessionAttributes を介して指定された名前と型に対してチェックされます。一致するモデル属性は HTTP セッションに保存され、コントローラーが SessionStatus.setComplete() を呼び出すまでそこに残ります。

導入:
3.1
作成者:
Rossen Stoyanchev, Juergen Hoeller
  • フィールドの詳細

    • SESSION_KNOWN_ATTRIBUTE

      public static final StringSE SESSION_KNOWN_ATTRIBUTE
      セッション属性としての既知の属性名ストレージのキー (文字列配列)。

      これは、同じクラスのハンドラーメソッドが異なるサーバーで呼び出される可能性がある分散セッションシナリオで、型ベースのセッション属性を一貫して処理するために必要です。

      導入:
      6.1.4
  • コンストラクターの詳細

    • SessionAttributesHandler

      public SessionAttributesHandler(ClassSE<?> handlerType, SessionAttributeStore sessionAttributeStore)
      新しいセッション属性ハンドラーを作成します。セッション属性の名前と型は、指定された型の @SessionAttributes アノテーション(存在する場合)から抽出されます。
      パラメーター:
      handlerType - コントローラーの型
      sessionAttributeStore - セッションアクセスに使用
  • メソッドの詳細

    • hasSessionAttributes

      public boolean hasSessionAttributes()
      このインスタンスによって表されるコントローラーが、SessionAttributes アノテーションを介してセッション属性を宣言したかどうか。
    • isHandlerSessionAttribute

      public boolean isHandlerSessionAttribute(StringSE attributeName, ClassSE<?> attributeType)
      属性の名前または型が、基になるコントローラーの @SessionAttributes を介して指定された名前および型と一致するかどうか。

      このメソッドによって正常に解決された属性は「記憶」され、その後 retrieveAttributes(WebRequest) および cleanupAttributes(WebRequest) で使用されます。

      パラメーター:
      attributeName - チェックする属性名
      attributeType - 属性の型
    • storeAttributes

      public void storeAttributes(WebRequest request, MapSE<StringSE,?> attributes)
      指定された属性のサブセットをセッションに格納します。@SessionAttributes を介してセッション属性として宣言されていない属性は無視されます。
      パラメーター:
      request - 現在のリクエスト
      attributes - セッションストレージの候補属性
    • retrieveAttributes

      public MapSE<StringSE,ObjectSE> retrieveAttributes(WebRequest request)
      セッションから「既知の」属性、つまり、@SessionAttributes の名前でリストされた属性、型で一致したモデルに以前に保存された属性を取得します。
      パラメーター:
      request - 現在のリクエスト
      戻り値:
      おそらく空のハンドラーセッション属性を持つマップ
    • cleanupAttributes

      public void cleanupAttributes(WebRequest request)
      セッションから「既知の」属性を削除します。つまり、@SessionAttributes に名前でリストされた属性、型によって一致した、モデルに以前に保存された属性。
      パラメーター:
      request - 現在のリクエスト