在每次AJAX调用后渲染p:outputPanel



我有一个p:outputPanel,如果我有一块带有数据的Java对象,我想渲染它。如果对象为null,我不想渲染面板。

<h:form id="treeform">
    <p:outputPanel id="outputComponent" rendered="#{TreeViewController.compProfile}">
        <div>
            .........
        </div>
    </p:outputPanel>
</h:form>
public boolean getCompProfile()
{
    if (cd == null)
    {
        return false;
    }
    else
    {
        return true;
    }
}

我注意到代码工作正常。如果对象为null,则布尔值为false,并且不显示面板。但我发现的问题是,当我再次调用AJAX时,无论Java对象是否为null,布尔值始终为false。我可以在AJAX调用后以某种方式配置p:outputPanel来检查#{TreeViewController.compProfile}属性以渲染还是不渲染面板吗。

更改

<p:outputPanel id="outputComponent" rendered="#{TreeViewController.compProfile}">

进入

<p:outputPanel autoUpdate="true">
    <p:outputPanel  id="outputComponent" rendered="#{TreeViewController.compProfile}">
</p:outputPanel>

或者,不要添加包装并将treeform id添加到ajax(p:ajaxp:commandButton)的update属性中

像这个update="treeform"

相关内容

  • 没有找到相关文章

最新更新