0

私のコードはここにあります

<% 
@SuppressWarnings("unchecked")

ArrayList<kisi> arr=(ArrayList<kisi>)request.getSession().getAttribute("arr");
%>

<%for(int i=arr.size()-1;i>=0;i--) { %>
Isim:<strong><%= arr.get(i).name %></strong> <br>
Soyisim:<strong><%=arr.get(i).surname  %></strong><br>
Cinsiyet:<strong><%= arr.get(i).gender%></strong><br>
Sehir:<strong><%= arr.get(i).sehir %></strong><br>
-----------------------------------<br>
<% }%>

どのようにして一度だけループし、真実を1つ​​だけ表示しますが、なぜたくさんありますか?

4

2 に答える 2

0

順序が重要でない場合は、これを使用できます。

for(kisi k : arr) { // 出力データ }

また、ループが複数のレコードを持っていることを確認するために、ループが始まる前に arraylist のサイズを出力してください。

于 2013-02-22T10:35:25.443 に答える
0

問題は、 を宣言したブロックにありますarr

var arr はそのブロックに対してのみローカルです。<%! declaration %>arr の宣言には宣言タグを使用します。宣言はクラス全体に対して機能しますが、スクリプトレット宣言はローカル宣言に対してのみ機能します。

于 2013-02-22T10:40:18.027 に答える