1

いくつかのタブとレンダリングされた属性があります。私の問題は、タブを閉じるときに、このタブのレンダリングされた属性を false に設定する方法です。setRendered メソッドで設定しましたが、問題は renderTab1 変数がまだ True を保持していることです。私がやりたいことは; renderTab1 変数を「False」に設定します。ちなみに私は20-25のような多くのタブを持っています。より良い解決策があれば、共有できます。

私のxhtml;

   <p:ajax event="tabClose" listener="#{myController.onTabClose}"/>

   <p:tab id="firstTab" closable="true" 
   rendered="#{myController.renderTab1}"/>

私の tabclose メソッド;

public void onTabClose(TabCloseEvent event) {
    event.getTab().setRendered(false);
}
4

2 に答える 2

0

JSF コンポーネントのrenderedプロパティは、JSF のライフサイクル全体で何度も解決されるため、イベントで手動で設定しても、JSF が実際にレンダリングを開始するまでには機能しない可能性があります。ただし、rendered属性は次の値を取ることができます。

  1. ブール値のプロパティ: 例:rendered="#{myController.booleanProperty}"

  2. ブール値を返すメソッド: 例:rendered="#{myController.doStuffAndReturnBoolean()}"

  3. ブール値に解決される EL 式:rendered="#{myController.intValue gt 3}"

于 2013-04-29T11:57:03.817 に答える