【问题标题】:Primefaces Accordion Tab empty when rendered="true"Primefaces Accordion 选项卡在渲染 =“true”时为空
【发布时间】:2015-06-16 07:24:52
【问题描述】:

在我决定根据 get 参数隐藏一些选项卡之前,我有一个完美的手风琴式表单和数据表。例如/editarContrato.jsf?id=19

现在呈现的选项卡出现但为空。我现在正确评估了布尔值,并且选项卡标题显示了它应该显示的时间,而不是内容。

谢谢!

<p:accordionPanel multiple="true" dynamic="true" cache="false"
id="mainAccordion">
<p:tab title="#{msg['label.contrato']}" id="mainTab">
    <h:form styleClass="form-horizontal" id="form">

    </h:form>
</p:tab>
<p:tab title="Plan de Pagos" rendered="#{not empty param.id}">
    <h:form styleClass="form-horizontal" id="formPago">
        <p:dataTable id="dataPagos" value="#{pagoMB.dataPagos}" var="pago"
            editable="true" ajax="true" royKey="#{pago.id}" scrollable="true"
            scrollWidth="100%" rows="10" paginator="true"
            paginatorTemplate="{CurrentPageReport}  {FirstPageLink} {PreviousPageLink} {PageLinks} {NextPageLink} {LastPageLink} {RowsPerPageDropdown}"
            rowsPerPageTemplate="5,10,15" style="table-layout: auto">
            <f:facet name="header">Plan de Pagos
                </f:facet>
        </p:dataTable>
    </h:form>
</p:tab>

【问题讨论】:

  • 不是通过param.id直接/隐式获取请求参数值,而是首先通过&lt;f:viewParam&gt;@ManagedProperty(value="#{param.id}")将其设置为托管bean属性(仅在请求范围的JSF托管bean中可用)或任何适合您的需求。除非绝对必要,否则不应为每个 &lt;p:tab&gt; 使用多个 &lt;h:form&gt;s。如有必要,您可以始终通过 AJAX 部分处理/更新组件,而不是处理/更新有问题的整个 &lt;h:form&gt;
  • autoUpdate="true" 将标签的内容包裹在outputPanel 中。现在查看您的 javascript 控制台,查看该选项卡下的标记中是否有任何内容。还要寻找 ajax 错误

标签: jsf jsf-2 primefaces accordion


【解决方案1】:

试试:

<p:tab title="Plan de Pagos" rendered="#{not empty param['id']}">

Param 是一个值映射,而 id 不能以这种方式解析。

【讨论】:

    猜你喜欢
    • 2016-01-10
    • 2015-12-20
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2021-03-07
    • 2019-05-29
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多