[解決済み] Spring RedirectAttributes: addAttribute() vs addFlashAttribute()
質問
私の理解では、コントローラのリクエストマッピングメソッドで、以下のように指定することができます。 RedirectAttributes パラメータを指定し、そのパラメータにリクエストがリダイレクトされるときの属性を入力します。
例 :
@RequestMapping(value="/hello", method=GET)
public String hello(RedirectAttributes redirAttr)
{
// should I use redirAttr.addAttribute() or redirAttr.addFlashAttribute() here ?
// ...
return "redirect:/somewhere";
}
そして、リダイレクト先のページでリダイレクト属性が利用できるようになります。
ただし RedirectAttributes クラスには2つのメソッドがあります。
しばらくSpringのドキュメントを読んでいますが、少し迷っています。基本的な の違い とは何か、そしてどのようにしてどちらを使うべきかを選択すべきでしょうか?
どのように解決するのですか?
ここでは の違いです。 :
-
addFlashAttribute()
実際に属性を格納するのは フラッシュマップ に格納されています (これは内部的にユーザーsession
で管理され に保持され、次のリダイレクトされたリクエストが実行されると削除されます) -
addAttribute()
は、基本的に リクエストパラメータ を構築します。 を構築し、そのリクエストパラメータで目的のページにリダイレクトします。 パラメータで目的のページにリダイレクトします。
では
の利点
の
addFlashAttribute()
には、ほとんどすべてのオブジェクトを格納することができます。
フラッシュ属性
(リクエストパラメータにシリアライズされず、オブジェクトとして維持されるため)一方
addAttribute()
では、追加したオブジェクトは通常のリクエストパラメータに変換されるため、オブジェクトの種類は
String
やプリミティブのようなオブジェクトタイプにかなり制限されます。
関連
-
XMLファイル操作時のjava.util.NoSuchElementExceptionを解決する方法。
-
[解決済み] Spring Data JPAにおけるCrudRepositoryとJpaRepositoryのインターフェースの違いは何ですか?
-
アクセス制限です。タイプ 'Application' は API ではない(必要なライブラリに制限がある)。
-
X11 DISPLAY変数が設定されていない」問題の解決方法
-
1分でわかる!恋人の写真をIDEAの背景画像に設定する方法【おすすめ集
-
アクセス制限の解決方法: ---- in Java
-
[解決済み] Spring Bootアプリケーションにポートを設定する方法
-
[解決済み] Springのオートワイヤリングの仕組みは?
-
[解決済み] springの@Controllerアノテーションと@RestControllerアノテーションの違いについて
-
[解決済み] Spring Boot RESTサービスの例外処理
最新
-
nginxです。[emerg] 0.0.0.0:80 への bind() に失敗しました (98: アドレスは既に使用中です)
-
htmlページでギリシャ文字を使うには
-
ピュアhtml+cssでの要素読み込み効果
-
純粋なhtml + cssで五輪を実現するサンプルコード
-
ナビゲーションバー・ドロップダウンメニューのHTML+CSSサンプルコード
-
タイピング効果を実現するピュアhtml+css
-
htmlの選択ボックスのプレースホルダー作成に関する質問
-
html css3 伸縮しない 画像表示効果
-
トップナビゲーションバーメニュー作成用HTML+CSS
-
html+css 実装 サイバーパンク風ボタン
おすすめ
-
Eclipse問題 アクセス制限。タイプ 'SunJCE' が API でないことを解決し、/jdk ディレクトリにある /jre と jre の違いについて理解を深める。
-
XMLファイル操作時のjava.util.NoSuchElementExceptionを解決する方法。
-
メモ帳でJavaプログラムをコンパイルして実行すると、Could not find or load main class ...というエラーが表示される。解決方法
-
Javaクラスが "Error occurred during initialization of boot layer "というエラーで実行される。
-
SpringBoot 起動エラー java.nio.charset.MalformedInputException: 入力長 = 2 解決
-
ジャバアレイ
-
コンストラクタDate()が未定義である問題
-
アクセス制限の解決方法: ---- in Java
-
htmlとwordの相互変換の実装(画像あり)
-
swagger2 モデルが表示されない モデルが見つからない @ApiModel アノテーションが表示されない問題