jsf tabledata动态输入文本

时间:2013-10-09 13:15:31

标签: jsf dynamic input datatable

我的支持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按钮后,我想创建一个列表/地图/任何输入的值。我怎样才能做到这一点?谢谢你的帮助

1 个答案:

答案 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>