JavaEEで何らかの処理を行い、リダイレクトさせる場合、リダイレクト前のデータを保存し、リダイレクト後のページにデータをもちこしたいときなどがあると思います。
オブジェクトの変数自体はスコープアノテーションで管理していますが、こういった単独の変数を持ち越したいときにどう使えばよいか迷うことが多いでしょう。
私もあまり情報がでてこなくて迷いましたが、flashオブジェクトを使うと、Map型式で変数を持ち越すことができます。
リダイレクト前になんらかの処理をするページ
1 |
FacesContext.getCurrentInstance().getExternalContext().getFlash().put("入れたいデータのキー","入れたいデータそのもの"); |
リダイレクト後に移動するページ
1 |
String value = FacesContext.getCurrentInstance().getExternalContext().getFlash().get("入れたデータのキー").toString(); |
これで値を運ぶことができます。
よく考えたらメッセージの持ち越しなんかはこの手法を行っていましたね。
参考リンク