运用

时间:2014-08-21 18:26:29

标签: jsp servlets foreach jstl tiles

使用嵌套切片时遇到问题:c:forEach循环中的insertAttribute标记。

c:forEach标记提供了我想在tile中使用的var属性:insertAttribute但它在tile JSP中变得不可见:

瓦片-defs.xml:

<definition name="orderDetail.content" template="/jsp/page/orderDetail.jsp">
    <put-attribute name="orderDetailCustomerInfo" value="orderDetail.customerInfo" />
    <put-attribute name="orderDetailShippingOrder" value="orderDetail.shippingOrder" />                         
</definition>   

<definition name="orderDetail.shippingOrder" template="/jsp/template/orderDetailShippingOrder.jsp">
    <put-attribute name="orderDetailShippingOrderLineItem" value="orderDetail.shippingOrderLineItem" />
</definition>   

在orderDetail.jsp:

    <c:forEach items="${order.shippingOrderBeanCollection}" var="shippingOrder">    
        <tiles:insertAttribute name="orderDetailShippingOrder" />
    </c:forEach>

在orderDetailShippingOrder.jsp:

${shippingOrder} var在tile JSP中不可见。

我能找到一个&#34;脏&#34;使用c:使用范围请求设置的解决方案:

    <c:forEach items="${order.shippingOrderBeanCollection}" var="shippingOrder">
        <c:set var="shippingOrder" value="${shippingOrder}" scope="request" />

        <tiles:insertAttribute name="orderDetailShippingOrder" flush="true" />
    </c:forEach>

这似乎是一个不太优雅的解决方案。

我想知道在嵌套磁贴中使var高于可见性的最佳解决方案是什么?

0 个答案:

没有答案