在迭代中需要需要判断当前记录id是否与上一条记录的id相同,并进行相应处理,实现方式如下:
1.判断是否是第一条记录,如果是设置一个动态变量,并赋值
<s:if test="#st.First">
<s:set name="orderid" value="#order[0]"></s:set>
</s:if>
2.如果不是第一条记录,判断动态变量是否需当前id相同,并给动态变量再赋新值
<s:if test="#orderid!=#order[0]">
<s:set name="orderid" value="#order[0]"></s:set>
注:不同的标签头,可能使用“#”取值,或${}取值,可能会报错,报错时换一下试试
附代码:
<s:iterator value="#request.myorders" id="order" status='st'>
<s:if test="#st.First">
<s:set name="orderid" value="#order[0]"></s:set>
</s:if>
<s:if test="#orderid!=#order[0]">
<s:set name="orderid" value="#order[0]"></s:set>
订单号: <s:property value="#order[0]"/> 订单金额: <s:property value="#order[1]"/>
下单时间: <s:property value="#order[2]"/> 收货地址: <s:property value="#order[3]"/>
<s:property value="#order[4]"/><s:property value="#order[5]"/>
<s:property value="#order[6]"/> <s:property value="#order[7]"/>订单状态: <s:property value="#order[8]"/>
</s:if>
<br>
商品号: <s:property value="#order[9]"/>
商品单价: <s:property value="#order[10]"/>
购买数量: <s:property value="#order[11]"/>
<br>
</s:iterator>
//附:
s:iterator 标签有3个属性:
value:被迭代的集合