2

我正在尝试为 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 -->
4

1 回答 1

0

为什么每个值一张表?为什么使用 1337 个迭代器而不是一个?为什么<b><font>而不是使用 CSS ?

顺便说一句,您只需要使用%(模块运算符)来检查当前位置是否是六的倍数;如果是,则需要拆分<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;
}
于 2013-07-22T16:02:29.607 回答