p:dataTable在c:forEach中

时间:2013-12-30 23:09:34

标签: java primefaces arraylist foreach datatable

我正在尝试做动态数据表。我有一个ArrayList,里面有ArrayList类型的对象,我想用不同数量的元素做几个表,但是我没有得到这个代码的预期结果:

<c:forEach var="lista" items="#{controller.listas}" varStatus="status">

    <p:dataTable id="teste#{status.index}" var="obj" value="lista" scrollable="true" 
        selectionMode="single" sortMode="multiple" selection="#{controller.selected}" 
        rowKey="#{obj.id}" scrollHeight="200">

        <p:column headerText="PRAZO">
            <h:outputText value="#{obj.att1}" />
        </p:column>

        <p:column headerText="COMBINAÇÃO">
            <h:outputText value="#{obj.att2}" />
        </p:column>

        <p:column headerText="AÇÃO">
            <h:outputText value="#{obj.att3}" />
        </p:column>
    </p:dataTable>
</c:forEach>

在我的控制器中我有一个像这样的ArrayList:

private ArrayList<ArrayList<Foo>> listas = new ArrayList<ArrayList<Foo>>();

在listas中我有3个ArrayList,第一个有1个对象,第二个有1个对象,第三个有2个对象,执行这个代码它做3个表(ok),每个4行(不行)... < / p>

有什么想法吗?

1 个答案:

答案 0 :(得分:0)

虽然@Mindwin提到你不应该混合使用JSLT和JSF标签,但我仍然试图修改你的代码,这就是你想要的:(但我认为你应该尝试@Mindwin所说的。)

enter image description here

除了将value="lista"更改为value="#{lista}"之外,我没有编辑您的代码 您应该使用EL而不是简单地用字符串调用lista 祝你好运,新年快乐。