我正在尝试在HTML中为网页构建一个滑块。 它从struts操作中获取ArrayList(名为testList)的值。而且我要 在此模式中一次显示列表中的6个值。例如:
如果数组大小为26,{0,1,2,3,4,5}则为{6,7,8,9,10,11},然后为{11,12,13,14,15} ..等等到{24,25},其余的值即使为null也可以。
每个循环都有类似的东西:
for(i=0;i<size;i+6){}
但是目前我从这个模式的列表中得到了值:
{0,1,2,3,4,5}然后{1,2,3,4,5,6}然后{2,3,4,5,6,7} ..
这是因为索引(#status.index)以下列模式{0,1,2,3 ...}进行迭代 我希望索引每次增加6而不是0到1到2等。
我添加了step =“6”,但这不起作用。
以下是我的代码示例:
<ul class="slider">
<s:iterator step="6" status="status" value="testList" >
<li> <!-- FIRST SLOT OF DATA -->
<div class="rightSubContainer">
<s:iterator value="testList[#status.index]" >
<table >
<tr>
<th>
<p align="center"><b ><font color="#151B54"><s:property value="name" /></font></b></p>
</th>
</tr>
</table>
<!-- ...values -->
</s:iterator>
</div>
<div class="rightSubContainer">
<s:iterator value="testList[#status.index+1] " >
<table >
<tr>
<th>
<p align="center"><b ><font color="#151B54"><s:property value="name" /></font></b></p>
</th>
</tr>
</table>
<!-- ...values -->
</s:iterator>
</div>
<div class="rightSubContainer">
<s:iterator value="testList[#status.index+2]" >
<table >
<tr>
<th>
<p align="center"><b ><font color="#151B54"><s:property value="name" /></font></b></p>
</th>
</tr>
</table>
<!-- ...values -->
</s:iterator>
</div>
<!-- ... and so on.. upto 6 values -->
答案 0 :(得分:0)
为什么每个值都有一个表?为什么1337迭代器而不是单个迭代器?为什么<b>
,<font>
等而不是使用CSS?
顺便说一下,您只需要使用%
(模块运算符)来检查当前位置是否为6的倍数;如果是,则需要拆分<li>
;
请注意,IteratorStatus.count
与IteratorStatus.index + 1
相同,因为它是1-based
;
丑陋的方式:
<ul class="slider">
<li>
<s:iterator status="status" value="testList" >
<table >
<tr>
<th>
<p align="center"><b ><font color="#151B54">
<s:property value="name" />
</font></b></p>
</th>
</tr>
</table>
<s:if test="%{#status.count % 6 == 0}" >
</li>
<li>
</s:if>
</s:iterator>
</li>
</ul>
更好的方式:
<ul class="slider">
<li>
<s:iterator status="status" value="testList" >
<p>
<s:property value="name" />
</p>
<s:if test="%{#status.count % 6 == 0}" >
</li>
<li>
</s:if>
</s:iterator>
</li>
</ul>
和CSS(或<style></style>
元素中的<head>
块内)
ul.slider > li > p {
text-align: center;
color: #151B54;
font-weight: bold;
background-color: #ddd;
}