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