2

次のようなことができるようになりたいです。

 @ManagedBean
 class MyBackingBean {
     public void processRequest() {
         String viewName;
         if (condition1) 
             viewName = "page1";
         else if (condition2) 
             viewName = "pagexx";     

         invokeAndRenderXHTML(viewName);
     }
 }

ありがとう

4

3 に答える 3

1

JSF は、デフォルトでプログラムによるナビゲーションを提供します。ナビゲーションを有効にするためにサードパーティのライブラリは必要ありません。JSF ナビゲーションを使用するには、メソッドはアクセスしようとしているビューの名前を返すだけで、そのページに移動します。redirect戻り値にオプションのパラメーターを含めて、JSF コンテキストに応答を完全に宛先ビューにリダイレクトするように指示することもできます。あなたのニーズに合わせprocessRequestて、

   public String processRequest() {
     // String viewName unnecessary
     if (condition1) {
        return "page1";
              }
     else if (condition2) {
        return = "pagexx";  
           }
        return null;   
    // invokeAndRenderXHTML(viewName) becomes unnecessary
    }

redirect上記のようなオプションを使用することを選択した場合は、戻り値の文字列を次のように変更するだけです

    return "page1?faces-redirect=true"

thefaces-redirect=trueは、リダイレクト マジックを実行するパラメータです。

于 2012-10-21T17:34:03.680 に答える
-1

応答をトリガーするには要求が必要なので、2 つの方法があると思います。ポーリングまたはプッシュ。

www.primefaces.org/showcase/ui/poll.jsf

www.primefaces.org/showcase/push/index.jsf

両方のプライムフェイスのショーケースをチェックして、どちらがニーズに最も適しているかを理解してください. ライブラリを使用しない場合でも、ソースを参照して、jsf2 でこれを行う方法をよりよく理解できます。

于 2012-10-20T18:24:35.537 に答える