1

共有バッキング Bean を持つ 2 つの異なる JSF2 ページがあります。どのページが現在使用されているかを知るために、ページからバッキング Bean (ページの読み込み時 - @PostConstruct を使用したメソッド) にパラメーターを渡すにはどうすればよいですか。

<f:event>like preRenderView(like this )を使用できることはわかっていますが、バッキング Bean にメソッドとフィールドが必要です。f:attribute や f:param のようなもので、バッキング Bean に追加のメソッドを追加せずにこれは可能ですか?

4

1 に答える 1

1

Bean がリクエスト スコープの場合は、ビュー ID を管理プロパティとして取得するだけです#{view.viewId}

@ManagedProperty("#{view.viewId}")
private String viewId; // +setter

Bean がビュー スコープの場合は、ビュー ID を直接取得しますUIViewRoot#viewId()

private String viewId;

@PostConstruct
public void init() {
    viewId = FacesContext.getCurrentInstance().getViewRoot().getViewId();
    // ...
}
于 2012-10-30T23:19:57.780 に答える