About

General

Teeda Core

Teeda Extension

Teeda Ajax

プロジェクト文書

モジュール

Built by Maven

画面遷移

初期表示やリダイレクト表示で別画面へ遷移するには

initialize() メソッドの戻り値で次画面のページクラスまたは ページ名 を指定します.

例:ページクラス (FooPage.java)
public Class initialize() {
    return NextPage.class;
}

関連項目

ポストバックで別画面へ遷移するには

do~() メソッドの戻り値で次画面のページクラスまたは ページ名 を指定します.

例:ページクラス (FooPage.java)
public Class doNext() {
    return NextPage.class;
}

関連項目

異なったプロトコルで画面遷移するには

ライフサイクルメソッド に @Redirect アノテーションを付与し,リダイレクトで使用するプロトコル (httpまたはhttps) を指定します.

例:ページクラスのプロパティ (FooPage.java)
Tigerアノテーション
@Redirect(protocol = ProtocolType.HTTPS)
public Class doXxx() {
    return XxxPage.class;
}
定数アノテーション
public static final String doXxx_REDIRECT = "protocol=https";
public Class doXxx() {
    return XxxPage.class;
}

関連項目

外部サイトにリダイレクトするには

ページクラスに javax.servlet.http.HttpServletResponse 型および javax.faces.context.FacesContext 型のプロパティを用意します. ライフサイクルメソッドの中で HttpServletResponse の sendRedirect(String location) メソッドを呼び出してリダイレクト先を指定します. その後, FacesContext の responseComplete() メソッドを呼び出します.

例:ページクラス (FooPage.java)
public HttpServletResponse response;
public FacesContext facesContext;

public Class doRedirect() {
    String url = "...";
    response.sendRedirect(url);
    facesContext.responseComplete();
    return null;
}

関連項目

状態の引き継ぎ

画面を表示したときの状態をサブミットされたときまで引き継ぐには

初期表示 や リダイレクト表示 , ポストバック (自画面表示) 等で画面を表示したときのページクラスの状態 (HTMLの <input> 等にマッピングされていないプロパティの値) を, 画面がサブミットされたとき ( ポストバック ) まで引き継ぐには, ページスコープ を使用します.

ページスコープ を使用するには,引き継ぎたいプロパティに PageScope アノテーションを指定します.

例:ページクラスのプロパティ (FooPage.java)
Tigerアノテーション
@PageScope
public String name;
定数アノテーション
public static final String PAGE_SCOPE = "name";
public String name;

ポストバック 時, name プロパティは ページスコープ に追加されます.

関連項目

画面遷移の前後で状態を引き継ぐには

ポストバック (リダイレクト) 時のページクラスの状態 (プロパティの値) を, リダイレクト表示 まで引き継ぐには, 引き継ぎたいプロパティを, 画面遷移元のページクラスと画面遷移先のページクラスの両方に, 同じ名前と型 で用意します.

例:画面遷移元ページクラスのプロパティ (FooPage.java)
public String name;
例:画面遷移先ページクラスのプロパティ (BarPage.java)
public String name;

ポストバック (リダイレクト) 時, 画面遷移元と 画面遷移先のページクラスに共通のプロパティは デフォルトスコープ に追加されます.

注意事項

デフォルトスコープ は実質 サブアプリケーションスコープ であるため, リダイレクト時に引き継いだ状態は, 同じサブアプリケーションの画面を表示している間引き継がれ続けます. この動作が不都合な場合は「 画面遷移の前後だけ状態を引き継ぐには 」を参照してください.

関連項目

画面遷移の前後だけ状態を引き継ぐには

ポストバック (リダイレクト) 時のページクラスの状態 (プロパティの値) を, リダイレクト表示 まで引き継ぐが, その後は同じサブアプリケーション内の画面でも引き継がないようにするには, 画面遷移 元 ページクラスのプロパティに RedirectScope アノテーションを指定します.

例:ページクラスのプロパティ (FooPage.java)
Tigerアノテーション
@RedirectScope
public String name;
定数アノテーション
public static final String REDIRECT_SCOPE = "name";
public String name;

ポストバック (リダイレクト) 時, name プロパティは リダイレクトスコープ に追加されます.

注意事項

リダイレクトスコープ は リダイレクト表示 後に破棄されるため, 再読込を行うと状態は失われます. 再読込で状態を維持する必要がある場合は, 画面遷移 先 ページクラスのプロパティに ページスコープ を指定してください. 詳細は「 画面を表示したときの状態をサブミットされたときまで引き継ぐには 」を参照してください.

関連項目

サブアプリケーション内の複数の画面に跨って状態を引き継ぐには

画面遷移の前後だけでなく,同一のサブアプリケーション内の画面を表示している間, 継続して状態を引き継ぐには, 画面遷移 元 ページクラスのプロパティに SubapplicationScope アノテーションを指定します.

例:ページクラスのプロパティ (FooPage.java)
Tigerアノテーション
@SubapplicationScope
public String name;
定数アノテーション
public static final String SUBAPPLICATION_SCOPE = "name";
public String name;

画面表示時, name プロパティは サブアプリケーションスコープ に追加されます.

関連項目

異なったサブアプリケーションに跨って状態を引き継ぐには

ポストバック (リダイレクト) 時のページクラスの状態 (プロパティの値) を, 異なったサブアプリケーションのページに リダイレクト表示 するまで引き継ぐには, 画面遷移 元 ページクラスのプロパティに RedirectScope アノテーションを指定します.

例:ページクラスのプロパティ (FooPage.java)
Tigerアノテーション
@RedirectScope
public String name;
定数アノテーション
public static final String REDIRECT_SCOPE = "name";
public String name;

ポストバック (リダイレクト) 時, name プロパティは リダイレクトスコープ に追加されます.

注意事項

リダイレクトスコープ は リダイレクト表示 後に破棄されるため, 再読込を行うと状態は失われます. 再読込で状態を維持する必要がある場合は, 画面遷移 先 ページクラスのプロパティに ページスコープ を指定してください. 詳細は「 画面を表示したときの状態をサブミットされたときまで引き継ぐには 」を参照してください.

関連項目

特定のサブミットボタンが押されたときは画面遷移で状態を引き継がないようにするには

画面遷移 元 のサブミットボタンに TakeOver アノテーションを指定して, 引き継ぎたいプロパティや引き継ぎたくないプロパティを指定します.

例:遷移元ページクラス (FooPage.java)
Tigerアノテーション
public String foo;
public String bar;
public String baz;

@TakeOver(type = TakeOverType.INCLUDE, properties = "foo")
public Class doSend() {
    ...
    return BarPage.class;
}
定数アノテーション
public String foo;
public String bar;
public String baz;

public static final String doSend_TAKE_OVER = "type='include', properties='foo'");
public Class doSend() {
    ...
    return BarPage.class;
}
例:遷移先ページクラス (BarPage.java)
public String foo;
public String bar;
public String baz;

FooPage の doSend() から ポストバック (リダイレクト) で BarPage に画面遷移する場合, foo プロパティのみ引き継がれ, bar および baz プロパティは引き継がれません.

関連項目

サブミットボタンが押されたときにサブアプリケーションスコープの状態を破棄するには

サブミットボタンの id 属性を doFinish または doOnceFinish で始まるようにします.

例:テンプレートHTML (foo.html)
<input type="submit" id="doFinishCancel" value="キャンセル" />
例:ページクラスのメソッド (FooPage.java)
public Class doFinishCancel() {
    ...
}

関連項目