使用嵌套切片时遇到问题: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高于可见性的最佳解决方案是什么?