DisplayTag在forEach标记内不起作用

时间:2012-10-21 18:48:45

标签: jsp jstl displaytag

我正在尝试在forEach循环中渲染一个DisplayTag表。表达式${paquete.listaProductoPaquete}是一个项目列表;但是当我尝试这个时,我得到一张空桌子:

<c:forEach var="paquete"
    items="${consultaConsumosWrapper.listadoPaqueteConsumo}">
    <tr>
        <td><display:table
                name="${paquete.listaProductoPaquete}" export="false"
                id="producto" style="width:100%" sort="list"
                defaultsort="1" class="grilla">
                <display:column sortable="false"
                    titleKey="header.consultaDatos.producto">
                    ${producto.producto}
                </display:column>
            </display:table> 
            </td>
    </tr>
</c:forEach>

如果我试试这个,我会按预期获得列表中单个项目的信息:

<c:forEach var="paquete"
    items="${consultaConsumosWrapper.listadoPaqueteConsumo}">
    <tr>
        <td>
            <c:forEach var="producto"
                items="${paquete.listaProductoPaquete}">
                ${producto.producto}
            </c:forEach></td>
    </tr>
</c:forEach>

为什么这不起作用的任何想法?当我在循环外尝试标记时,一切正常。

2 个答案:

答案 0 :(得分:0)

尝试更改为 <display:table name="paquete.listaProductoPaquete" ...

答案 1 :(得分:0)

请确保您正在使用带有EL支持的displayTag。在您的DisplayTag jar文件中,您应该有displayTag-el.tld文件。

如果List包含正确的数据,您应该看到以下代码的表:我刚刚从displayTable标记中删除了DisplayColumn和排序属性。

<c:forEach var="paquete"
    items="${consultaConsumosWrapper.listadoPaqueteConsumo}">
    <tr>
        <td><display:table
                name="${paquete.listaProductoPaquete}" export="false"
                style="width:100%" class="grilla">                    
            </display:table> 
         </td>
    </tr>
</c:forEach>