フラッシュ属性
Flash 属性は、あるリクエストが別のリクエストで使用するための属性を保存する方法を提供します。これは、リダイレクト時に最も一般的に必要になります。たとえば、Post-Redirect-Get パターン。Flash 属性は、リダイレクトの前に一時的に保存され(通常はセッションで)、リダイレクト後にリクエストで使用可能になり、すぐに削除されます。
Spring MVC には、フラッシュ属性をサポートする 2 つの主要な抽象化があります。FlashMap
はフラッシュ属性の保持に使用され、FlashMapManager
は FlashMap
インスタンスの保存、取得、管理に使用されます。
Flash 属性のサポートは常に「オン」であり、明示的に有効にする必要はありません。ただし、使用しない場合、HTTP セッションが作成されることはありません。各リクエストには、前のリクエストから渡された属性を持つ「入力」 FlashMap
(存在する場合) と、後続のリクエストのために保存する属性を持つ「出力」 FlashMap
があります。両方の FlashMap
インスタンスは、RequestContextUtils
の静的メソッドを介して Spring MVC のどこからでもアクセスできます。
アノテーション付きコントローラーは通常、FlashMap
を直接操作する必要はありません。代わりに、@RequestMapping
メソッドは型 RedirectAttributes
の引数を受け入れ、それを使用してリダイレクトシナリオのフラッシュ属性を追加できます。RedirectAttributes
を介して追加された Flash 属性は、自動的に「出力」FlashMap に伝播されます。同様に、リダイレクト後、「入力」 FlashMap
からの属性は、ターゲット URL を提供するコントローラーの Model
に自動的に追加されます。