initialize()
メソッドの戻り値で次画面のページクラスまたは
ページ名
を指定します.
do~()
メソッドの戻り値で次画面のページクラスまたは
ページ名
を指定します.
ライフサイクルメソッド
に
@Redirect
アノテーションを付与し,リダイレクトで使用するプロトコル (httpまたはhttps) を指定します.
ページクラスに
javax.servlet.http.HttpServletResponse
型および
javax.faces.context.FacesContext
型のプロパティを用意します.
ライフサイクルメソッドの中で
HttpServletResponse
の
sendRedirect(String location)
メソッドを呼び出してリダイレクト先を指定します. その後,
FacesContext
の
responseComplete()
メソッドを呼び出します.
初期表示
や
リダイレクト表示
,
ポストバック (自画面表示)
等で画面を表示したときのページクラスの状態 (HTMLの
<input>
等にマッピングされていないプロパティの値) を, 画面がサブミットされたとき (
ポストバック
) まで引き継ぐには,
ページスコープ
を使用します.
ページスコープ
を使用するには,引き継ぎたいプロパティに
PageScope
アノテーションを指定します.
ポストバック
時,
name
プロパティは
ページスコープ
に追加されます.
ポストバック (リダイレクト) 時のページクラスの状態 (プロパティの値) を, リダイレクト表示 まで引き継ぐには, 引き継ぎたいプロパティを, 画面遷移元のページクラスと画面遷移先のページクラスの両方に, 同じ名前と型 で用意します.
ポストバック (リダイレクト) 時, 画面遷移元と 画面遷移先のページクラスに共通のプロパティは デフォルトスコープ に追加されます.
デフォルトスコープ は実質 サブアプリケーションスコープ であるため, リダイレクト時に引き継いだ状態は, 同じサブアプリケーションの画面を表示している間引き継がれ続けます. この動作が不都合な場合は「 画面遷移の前後だけ状態を引き継ぐには 」を参照してください.
ポストバック (リダイレクト)
時のページクラスの状態 (プロパティの値) を,
リダイレクト表示
まで引き継ぐが, その後は同じサブアプリケーション内の画面でも引き継がないようにするには, 画面遷移
元
ページクラスのプロパティに
RedirectScope
アノテーションを指定します.
ポストバック (リダイレクト)
時,
name
プロパティは
リダイレクトスコープ
に追加されます.
リダイレクトスコープ は リダイレクト表示 後に破棄されるため, 再読込を行うと状態は失われます. 再読込で状態を維持する必要がある場合は, 画面遷移 先 ページクラスのプロパティに ページスコープ を指定してください. 詳細は「 画面を表示したときの状態をサブミットされたときまで引き継ぐには 」を参照してください.
画面遷移の前後だけでなく,同一のサブアプリケーション内の画面を表示している間,
継続して状態を引き継ぐには, 画面遷移
元
ページクラスのプロパティに
SubapplicationScope
アノテーションを指定します.
画面表示時,
name
プロパティは
サブアプリケーションスコープ
に追加されます.
ポストバック (リダイレクト)
時のページクラスの状態 (プロパティの値) を, 異なったサブアプリケーションのページに
リダイレクト表示
するまで引き継ぐには, 画面遷移
元
ページクラスのプロパティに
RedirectScope
アノテーションを指定します.
ポストバック (リダイレクト)
時,
name
プロパティは
リダイレクトスコープ
に追加されます.
リダイレクトスコープ は リダイレクト表示 後に破棄されるため, 再読込を行うと状態は失われます. 再読込で状態を維持する必要がある場合は, 画面遷移 先 ページクラスのプロパティに ページスコープ を指定してください. 詳細は「 画面を表示したときの状態をサブミットされたときまで引き継ぐには 」を参照してください.
画面遷移
元
のサブミットボタンに
TakeOver
アノテーションを指定して, 引き継ぎたいプロパティや引き継ぎたくないプロパティを指定します.
FooPage
の
doSend()
から
ポストバック (リダイレクト)
で
BarPage
に画面遷移する場合,
foo
プロパティのみ引き継がれ,
bar
および
baz
プロパティは引き継がれません.
サブミットボタンの
id
属性を
doFinish
または
doOnceFinish
で始まるようにします.