[英]How to programmatically draw blocks of N elements using an Iterator
Let's say, I want to achieve this with Struts iterator: 假设,我想通过Struts迭代器实现这一点:
<div class="carousel-inner">
<div class="active item">
<div class="row-fluid">
<ul class="thumbnails">
<li class="span3"><a href="#"><img src="images/sample/clients/client1.png"></a></li>
<li class="span3"><a href="#"><img src="images/sample/clients/client2.png"></a></li>
<li class="span3"><a href="#"><img src="images/sample/clients/client3.png"></a></li>
<li class="span3"><a href="#"><img src="images/sample/clients/client4.png"></a></li>
</ul>
</div>
</div>
<div class="item">
<div class="row-fluid">
<ul class="thumbnails">
<li class="span3"><a href="#"><img src="images/sample/clients/client4.png"></a></li>
<li class="span3"><a href="#"><img src="images/sample/clients/client3.png"></a></li>
<li class="span3"><a href="#"><img src="images/sample/clients/client2.png"></a></li>
<li class="span3"><a href="#"><img src="images/sample/clients/client1.png"></a></li>
</ul>
</div>
</div>
<div class="item">
<div class="row-fluid">
<ul class="thumbnails">
<li class="span3"><a href="#"><img src="images/sample/clients/client1.png"></a></li>
<li class="span3"><a href="#"><img src="images/sample/clients/client2.png"></a></li>
<li class="span3"><a href="#"><img src="images/sample/clients/client3.png"></a></li>
<li class="span3"><a href="#"><img src="images/sample/clients/client4.png"></a></li>
</ul>
</div>
</div>
</div>
This is what I have tried: 这是我尝试过的:
<div class="carousel-inner">
<div class="active item">
<div class="row-fluid">
<ul class="thumbnails">
<s:iterator value="members" begin="0" end="3">
<li class="span3"><a href="#"><img src="<s:property value='imageUrlPrefix' /><s:property value='imageName'>" /></a></li>
</ul>
</div>
</div>
<div class="item">
<div class="row-fluid">
<ul class="thumbnails">
<s:iterator value="members" begin="3" end="7">
<li class="span3"><a href="#"><img src="<s:property value='imageUrlPrefix' /><s:property value='imageName'>" /></a></li>
</ul>
</div>
</div>
</div>
I want my struts iterator to create item classes with 4 list items each. 我希望我的struts迭代器创建每个包含4个列表项的项类。 Once a class is filled with 4 list items, the iterator must create another item class.
一个类填充了4个列表项后,迭代器必须创建另一个项类。 How can I achieve this?
我该如何实现?
Thank you 谢谢
You can achieve this pretty easily by using the module
operator (as described in this answer ): 您可以使用
module
运算符( 如此答案中所述 )轻松实现此目标:
<div class="carousel-inner">
<div class="active item">
<div class="row-fluid">
<ul class="thumbnails">
<s:iterator value="members" status="ctr" >
<li class="span3">
<a href="#">
<img src="<s:property value='imageUrlPrefix' />
<s:property value='imageName'>" />
</a>
</li>
<s:if test="%{#ctr.count % 4 == 0}" >
</ul>
</div>
</div>
<div class="item">
<div class="row-fluid">
<ul class="thumbnails">
</s:if>
</s:iterator>
</ul>
</div>
</div>
</div>
Note: to set the active
class to the right item, use an <s:if>
inside the iterator, and another one outside to check if it's the first element to be active. 注意:要将
active
类设置为正确的项目,请在迭代器内部使用<s:if>
在外部使用另一个<s:if>
来检查它是否是第一个被激活的元素。
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.