マネージド Bean にメンバー変数があり、このメンバー変数はゲッターとセッターを使用して XHTML のコンポーネントに関連付けられています。関数呼び出しでメンバー変数を設定すると、このメンバー変数のゲッターがトリガーされたときに、このメンバー変数はまだ古い値を保持します。コンポーネントが最新の更新された値を取得できるように、このメンバー変数を更新する方法を教えてください。
管理 Bean:
@ManagedBean(name = "myBean")
@SessionScoped
public class MyBean {
public boolean show = false;
/** getter and setter **/
public void theFunc() {
this.show = true;
}
}
XHTML コード
<h:panelGroup id="Panel_1" rendered="#{myBean.show == true}">
...
Some rubbish here
...
</h:panelGroup>
<h:panelGroup id="Panel_2">
<h:commandLink action="#{myBean.doFunc}">
<f:ajax event="action" render="Panel_1"/>
<h:outputText value="XX" />
</h:commandLink>
</h:panelGroup>
このサンプルから、show
変数はtheFunc()
既に true に設定されているにもかかわらず、false を示しています。
2012 年 10 月 6 日の更新 commandButton を削除し、commandLink に置き換えました。使用に関しては問題ないと思います。