举例说明:
<logic:iterate id="hotelOrderDetail" collection="${order.hotelOrderDetails}" indexId="index" length="1">
<bean:write name="hotelOrderDetail" property="orderTime" format="yyyy-MM-dd HH:mm" />
</logic:iterate>
collection表示集合。如:List。
name表示request.setXX中的集合。
举例说明一下错误的写法:
Action中:
request.setAttribute("orders",order.getXXXList());
页面中:
错误写法一:
name="order.hotelOrderDetails"
错误原因:
Cannot find bean: "order.hotelOrderDetails" in any scope
错误写法二:
name="${order.hotelOrderDetails}"
错误原因:
javax.servlet.jsp.JspException: Cannot find bean: "[com.iteye.entity.HotelOrderDetail@8c167495, com.iteye.unicom.entity.HotelOrderDetail@fcd70622]" in any scope
正确的写法:
name="orders"
必须跟setAttribute中的key对应起来。
length表示循环次数。
与logic:equal结合使用
<logic:iterate id="hotelOrderDetail" collection="${order.hotelOrderDetails}" indexId="index">
<logic:equal name="index" value="0">
<html:button property="" value="增加预定房间" styleId="addRoom"/>
</logic:equal>
</logic:iterate>
上面logic:equal表示,index等于0才显示html:button。index是logic:iterate的索引号
不要把name的值写成${index},这个是错误的。
struts标签中name属性是对应request.setAttribute(key,value)的key。