我的支持bean中有一个List。我想把它呈现在一张桌子里。我希望表有两行 - 左侧是列表中的值,右侧是inputBoxes。这很容易。这是我的代码:
<div class="table">
<h:dataTable id="korekty" styleClass="table table-hover"
value="#{searchBean.listX}" var="v">
<h:column>
<f:facet name="header">XXX</f:facet>
#{v.string}
</h:column>
<h:column>
<f:facet name="header">YYY</f:facet>
<h:inputText styleClass="form-control">
</h:inputText>
</h:column>
</h:dataTable>
</div>
我的问题很难解决:在那些inputtext用户可能会放一些数字。然后在按下SUBMIT按钮后,我想创建一个列表/地图/任何输入的值。我怎样才能做到这一点?谢谢你的帮助
答案 0 :(得分:2)
首先,准备一个数组或列表,其中包含给定数据的占位符以及您所拥有的列表:
List<String> initialData = ...;//initial data of n size
String[] submittedData = new String[initialData.size()];//array of the same size
然后,将<h:dataTable>
组件绑定到视图以访问迭代的当前行索引。这样,您可以通过将输入元素的值绑定到数组/列表中的相应对象来完成工作:
<h:dataTable binding="#{table}" ... >
<h:column>
<f:facet name="header">YYY</f:facet>
<h:inputText value="#{searchBean.submittedData[table.rowIndex]}" ... />
</h:column>
</h:dataTable>