1

配列リストをhtmlテーブルに取得するにはどうすればよいですか?

私の配列リスト:

[
1, 2011-05-10,  1,  22.0, 
2, 2011-05-10,  2,  5555.0, 
3, 2011-05-11,  3,  123.0, 
4, 2011-05-11,  2, 212.0, 
5, 2011-05-30,  1,  3000.0, 
6, 2011-05-30,  1,  30.0, 
7, 2011-06-06,  1,  307.0, 
8, 2011-06-06,  1,  307.0 ]

out.println("<html>");
        out.println("<head>");
        out.println("<title>Counter</title>");
        out.println("</head>");
        out.println("<body>");
        out.println("<table border=\"1\">");
        out.println("<tr>");
        for (int i = 0; i < ex.getExpenses().size(); i++) {
            out.println("<td>" + ex.getExpenses().get(i) + "</td>");

            if (i>0 && i%4==0) {
                out.println("</tr><tr>");

            }

        }
        out.println("</tr>");
        out.println("</table>");
        out.println("</body>");
        out.println("</html>"); 

arraylistは0で始まるため、これは実際には機能しません。次のようなテーブルが表示されます。ここに画像の説明を入力してください

次のようなテーブルを取得するにはどうすればよいですか。

1 2011-05-10  1  22.0
2 2011-05-10  2  5555.0 
3 2011-05-11  3  123.0 
4 2011-05-11  2  212.0 
5 2011-05-30  1  3000.0
6 2011-05-30  1  30.0
7 2011-06-06  1  307.0
8 2011-06-06  1  307.0
4

3 に答える 3

3

交換

    for (int i = 0; i < ex.getExpenses().size(); i++) {
        out.println("<td>" + ex.getExpenses().get(i) + "</td>");
        if (i>0 && i%4==0) {
            out.println("</tr><tr>");
        }
    }

    for (int i = 0; i < ex.getExpenses().size(); i++) {
        if (i>0 && i%4==0) {
            out.println("</tr><tr>");
        }
        out.println("<td>" + ex.getExpenses().get(i) + "</td>");
    }

ところで。Expenses4つのフィールドを含む個別のクラスを作成します。これをhtmlに変換する方がはるかにクリーンで簡単です。ExpensesHTMLテーブル行に変換するための特別な個別のメソッドを作成できます。

于 2012-05-15T08:45:57.737 に答える
0

に変更i(i+1)ます:

[
1, 2011-05-10,  1,  22.0, 
2, 2011-05-10,  2,  5555.0, 
3, 2011-05-11,  3,  123.0, 
4, 2011-05-11,  2, 212.0, 
5, 2011-05-30,  1,  3000.0, 
6, 2011-05-30,  1,  30.0, 
7, 2011-06-06,  1,  307.0, 
8, 2011-06-06,  1,  307.0 ]

out.println("<html>");
        out.println("<head>");
        out.println("<title>Counter</title>");
        out.println("</head>");
        out.println("<body>");
        out.println("<table border=\"1\">");
        out.println("<tr>");
        for (int i = 0; i < ex.getExpenses().size(); i++) {
            out.println("<td>" + ex.getExpenses().get(i) + "</td>");

            if (i>0 && (i+1)%4==0) {
                out.println("</tr><tr>");

            }

        }
        out.println("</tr>");
        out.println("</table>");
        out.println("</body>");
        out.println("</html>"); 
于 2012-05-15T08:46:09.733 に答える
-1

まず、:arrylistを別の変数に入れてから、get()とget(i)を繰り返し呼び出す代わりに、foreachでそれを反復処理してから、if条件を変更します。

if ((i+1)%4==0) {
          out.println("</tr><tr>");
     }

2番目のこと:StringBuilderクラスを使用して出力文字列を連結し、1つだけで出力しますout.print

于 2012-05-15T08:47:18.870 に答える