1

如何在 HTML 中创建一个 3 列的表格ArrayList

我当前的代码如下所示:

<table border="0">

        <%
            for (int i = 1; i < states.size(); i++) {
        %>
        <TR>
            <%
                for (int col = 1; col <= 3; col++) {
            %>
            <TD>
                <%
                    out.println(states.get(i));}
                %>
            </TD>
            
        </TR>
        <%
            }
        %>
    </table>

我得到一个 3 列格式表,但每行中有 3 倍相同的条目......

预期产出

Albania | Algeria   | American Samoa
Andorra | Angola    | Anguilla
..

我错过了什么?

4

4 回答 4

1

如果我正确理解了要求(不确定是这种情况),那么这样的事情会给你一个开始。

<table border="0">
    <tr>
    <%
        for (int i = 1; i < states.size(); i++) {
            out.println("<td>" + states.get(i) + "</td>");
            if (i>0 && i%3==0) {
                out.println("</tr><tr>");
            }
        }
    %>
    </tr>
</table>

它将按照这些思路产生输出。

Albania | Algeria   | American Samoa
Andorra | Angola    | Anguilla
..

请注意,它仍然存在问题。如果有“3 的倍数”国家,则表格末尾将有一个完全空的行。如果没有,最后一行将没有正确的列数。BNI。

于 2012-04-18T06:30:22.800 回答
0

请像这样尝试。只需添加另一个变量,该变量将在从数组列表中检索信息时使用。

<table border="0">

    <%

        for (int i = 1, index = 0; i < states.size(); i++) {
    %>
    <TR>
        <%
            for (int col = 1; col <= 3; col++) {
        %>
        <TD>
            <%
                out.println(states.get(index++));}
            %>
        </TD>

    </TR>
    <%
        }
    %>
</table>
于 2012-04-18T06:19:44.020 回答
0

这只是一个小错字。您正在使用“i”进行索引,但您的内部变量是 col。

将其更改为:

...
out.println(states.get(3*col + i));
...

试试那个,你现在可能需要对你的列进行零索引。

于 2012-04-18T05:56:14.877 回答
0

笔记 :

  • List 中的索引从 0 开始
  • 您需要在检索之前计算索引。

        <%
            for (int i = 0; i < states.size(); i++) {
        %>
        <TR>
            <%
                for (int col = 0; col < 3; col++) {
            %>
            <TD>
                <%  
                    int index= (i*3)+col;
                    if(states.size()>index+1)
                    {    
                     out.println(states.get(index));
                    }
                    i = i+1;  
                %>
            </TD>
    
        </TR>
        <%
            }
        %>
    </table>
    
于 2012-04-18T06:06:28.997 回答