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

ノート :

  • リストのインデックスは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 に答える