我有一个tabView
,其中包含一定数量的标签,具体取决于我传递给tabView
的列表。在每个标签页面中,我有一个dataTable
,由于列中的inputText
,可以更改这些值。
以下是相应的代码:
<h:form id="otForm">
<p:commandButton update="@form" styleClass="button" icon="fa fa-check iconColor" id="btnValid" action="#{otCtrl.preValidateOt}" value="Submit" />
<p:tabView styleClass="tabViewClass" value="#{otCtrl.modelDtoToDisplay.otFils}" var="otFils">
<p:tab titleStyleClass="tabClass">
<p:dataTable var="propOt" id="propTab" value="#{otFils.listOtPropToModif}" styleClass="tableClass"
style="width:1120px !important; text-align: left;" paginator="true"
emptyMessage="#{i18n.getMsg('warning.table.vide')}"
rows="10"
paginatorTemplate="Total : #{otFils.listOtPropToModif.size()} {CurrentPageReport} {FirstPageLink} {PreviousPageLink} {PageLinks} {NextPageLink} {LastPageLink} {RowsPerPageDropdown} "
rowsPerPageTemplate="10,25,50,100,200" paginatorPosition="bottom" rowIndexVar="rowIndex"
rowStyleClass="{(rowIndex mod 2) eq 0 ? 'highlight1' : 'highlight2'}">
<f:facet name="header">
<h:panelGrid columns="1" style="margin-left: 5px;text-align:left;width: 120px;" columnClasses="columnLeft2">
<h:outputText value="Properties" />
</h:panelGrid>
</f:facet>
<p:column headerText="Property" sortBy="#{propOt.proprieteDTO.prop}" style="width:150px;">
<p:outputLabel for="propObli" value="#{propOt.prop}" />
</p:column>
<p:column headerText="Value" sortBy="#{propOt.valeur}" style="width:220px;">
<p:inputText id="propObli" value="#{propOt.valeur}" required="true"
requiredMessage="#{propOt.prop} is required"
style="width:98%; />
</p:column>
</p:dataTable>
</p:tab>
</p:tabView>
</h:form>
此tabView
封装在表单中。我面临的问题是,当我按下验证按钮时,仅保存最后一个选项卡的值。其他inputText
将保留null
,即使我在提交之前输入了值。
知道为什么会这样吗?
我使用primefaces 5.3和jsf 2.2
编辑: 我按照您的要求添加了验证按钮。见上面的代码。