0

ページの一部をレンダリングするメソッドをクリックしても、ページを手動で更新するまで何も変わりません。

ここに豆があります:

boolean showPage = true;

public boolean getShowPage(){
    return showPage;
}

ビューは次のとおりです。

<h:form>
    <p:commandButton value="Click" action="#{bean.hideContents()}" />
</h:form>

<p:panel rendered="#{bean.showPage}">
    Contents 
</p:panel>

ページを手動で更新するとパネルが非表示になりますが、それ以外の場合は非表示になりません。これはどのように発生し、どうすれば解決できますか?

4

1 に答える 1

6

条件付きでレンダリングされたコンポーネントの親コンポーネントを更新する必要があります。updateの属性にクライアント ID を指定することで、これを行うことができます<p:commandButton>

<h:form>
    <p:commandButton value="Click" action="#{bean.hideContents}" update=":panel" />
</h:form>

<h:panelGroup id="panel">
    <p:panel rendered="#{bean.showPage}">
        Contents 
    </p:panel>
</h:panelGroup>

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

于 2012-11-28T18:26:53.537 に答える