您好我在数据表中添加一个文本框,用户将在每行中输入数据。我需要有关如何保存数据的帮助......因为现在它只保存最后一行。请看下面的代码,有人可以帮忙吗?我认为应该有某种数组,但我不知道是否有可能使用el表达式在数组中存储值。我实现了一个嵌套的数据表,因为我希望数据并排。如果除了使用数据表之外你有更好的想法,我很高兴你能分享它并给出如何继续的正确指导。 (但它应该并排) 提前致谢
<p:dataTable id="dta" value="#{MyCarComponent.model}" var="cur" rows="15" >
<p:column>
<f:facet name="header">
<h:outputText value="Model:" />
</f:facet>
<h:outputText value="#{current.cptModel}" />
</p:column>
<p:column>
<f:facet name="header">
<h:outputText value="Type:" />
</f:facet>
<p:dataTable id="dta1" value="#{cur.type}" var="curType" rows="15" >
<p:column>
<h:outputText value="#{curType.cptType}" />
</p:column>
<p:column>
<f:facet name="header">
<h:outputText value="Origin:" />
</f:facet>
<h:form>
<p:dataTable id="dta3" value="#{curType.origins}" var="curOrigin" rows="15" >
<p:column>
<h:outputText value="#{curOrigin.origin}" />
</p:column>
<p:column>
<h:inputText
value="#{MyCarComponent.origindetails.country}"/>
</p:column>
</p:dataTable>
</h:form>
</p:column>
</p:dataTable>
</p:column>
<f:facet name="footer">
<p:commandButton image="save" ajax="false" value="Save" action=" #. {Mycar.saveMyCar(curOrigin.origin,MyCarComponent.origindetails)}" />
</f:facet>
答案 0 :(得分:0)
您当前正在将所有行的输入字段绑定到同一个bean属性。因此,当JSF以与组件树相同的顺序处理表单提交时,每个输入字段的值将在此同一属性中设置。当然,该物业将成为最后一排。
您只需将输入字段的值绑定到当前迭代的行#{curOrigin}
即可。 E.g。
<h:inputText value="#{curOrigin.country}" />
如果它尚不存在,只需创建那里的属性。