1

次の方法でJSF (PrimeFaces) ページを使用することは可能ですか? :

  1. 外部アプリケーション ( JSFベースではない) は、URLパラメーターを使用してHTTP GETを実行します。
  2. JSFページはこれらのパラメーターを読み取り (たとえば、ここで説明されているように)、ユーザーのブラウザーに何もレンダリングせずに、バッキング Bean ビジネス メソッドを呼び出します。
  3. ユーザーは、手順 2 で呼び出されたバッキング Bean メソッドのナビゲーション結果に対応するページに透過的に送信されます。

つまり、ステップ2のPrimeFacesページは、バッキング Bean ビジネス メソッドの呼び出しの副作用にのみ関与し、表示されることはありません。ステップ1の外部アプリケーションのリンクをクリックしたユーザーは、ステップ3のページに移動します。

4

1 に答える 1

3

<f:viewParam>GET パラメータを Bean プロパティとして設定するために使用し<f:event>、Bean アクションを実行するために使用NavigationHandlerし、プログラムでナビゲーションを実行するために使用します。

意見:

<f:metadata>
    <f:viewParam name="foo" value="#{bean.foo}" />
    <f:viewParam name="bar" value="#{bean.bar}" />
    <f:event type="preRenderView" listener="#{bean.action}" />
</f:metadata>

豆:

public void action() {
    // ...

    FacesContext context = FacesContext.getCurrentInstance();
    NavigationHandler navigationHandler = context.getApplication().getNavigationHandler();
    navigationHandler.handleNavigation(context, null, "outcome");
}

具体的な機能要件によっては、JSF がその仕事に適したツールであるとは限らないことに注意してください。目的のためにサーブレットフィルターまたはプレーンサーブレットをより適切に使用できないかどうかを調査します。

以下も参照してください。

于 2012-11-23T14:14:09.423 に答える