为什么没有刷新页面,JSF 2.0“渲染”不起作用?

时间:2012-11-28 17:33:50

标签: jsf render

当我单击一个方法来渲染页面的一部分时,在我手动刷新页面之前,它不会改变任何内容。

这是豆子:

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>

当我手动刷新页面时,面板会被隐藏,否则就不会。 这是怎么造成的,我该如何解决?

1 个答案:

答案 0 :(得分:6)

您需要更新有条件渲染组件的父组件。您可以通过在update

<p:commandButton>属性中指定其客户端ID来实现此目的
<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>

另见: