我正在尝试为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},即使其为零也可以保留其他值。
每个循环都类似: for(i=0;i<size;i+6){}
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 -->
为什么每个值一个表?为什么1337个迭代器而不是单个迭代器?为什么<b>,<font>等等,而不是使用CSS?
<b>
<font>
顺便说一句,您只需要使用%(模块运算符)来检查当前位置是否为6的倍数;否则为0。如果是,则需要拆分<li>;。
%
<li>
请注意,IteratorStatus.count这与相同IteratorStatus.index + 1,因为它是1-based;
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>)
<style></style>
<head>
ul.slider > li > p { text-align: center; color: #151B54; font-weight: bold; background-color: #ddd; }