2017-11-22 10 views
2

ajaxでpreRenderViewコンポーネントを更新する方法はありますか?ajaxでpreRenderViewコンポーネントを更新する

いくつかの例:この例では

<html> 
    <f:event type="preRenderView" listener="#{bean1.load}" /> 
    <f:event type="preRenderView" listener="#{bean2.load}" /> 

    <body> 
     <div jsf:rendered="#{bean1.enabled}" > 
      // some code here 
     </div> 

     </div jsf:rendered="#{bean2.enabled}" > 
      // some code here 
     </div> 
    </body> 
</html> 

、私はbean1が有効になっている場合、ケース1のpreRenderViewのみが解雇されるしたいです。セッションが毎回呼び出され、上記の単純なサンプルよりも複雑な方法があるため、Javaコードでチェックを追加するのは良い考えではありません。

どのコンポーネントでもf:イベントをラップすることはできますか?レンダリングされた属性をコンポーネントに追加し、それらをajax呼び出しで更新しますか?

私の知る限り、他のコンポーネントをhtmlタグの子として頭や体として追加することはできません。 body要素の中にpreRenderViewをパックして、単純なjsf:div?

答えて

2

代わりにpreRenderComponentイベントを使用し、それらのf:イベントをdiv内に配置します。

この種のJSFバインディングでうまくいくかどうかはわかりません。これらのdivをh:panelGroup layout="block"(単純なdivをレンダリングする)に置き換える必要があります。

+0

ありがとうございます、うまくいきます – kaiser

関連する問題