0

サー、配列リストを更新する際に問題があり、wd フォーム Bean に沿って wd jsp n アクション サーブレットに接続されています。

ここにリストを表示している私の最初のjspページがあります:私はこのリストを更新したい wdサーブレットロールノーが条件になりますか??

<%Iterator itr;%>
<% ArrayList data= (ArrayList)request.getAttribute("data");
    for (itr=data.iterator(); itr.hasNext(); )
    {


%>
    <tr>

        <td width="40"> <input type="text" value="<%=itr.next()%>"/></td>
        <td width="40"><input type="text"  name="th2" value="<%=itr.next()%>"/></td>
            <td width="40"><input type="text"  value="<%=itr.next()%>"/></td>
    <td width="40"><input type="text"  value="<%=itr.next()%>"/></td>
            <td width="40"><input type="text"  value="<%=itr.next()%>"/></td>
            <td width="40"><input type="text"  value="<%=itr.next()%>"/></td>

</tr>
<%}%>
4

1 に答える 1

0

それはイテレータの仕組みではありません。iter.hasNext は、さらに要素があるかどうかを指定します。iter.next で次に進みます。hasNext を 1 回呼び出していますが、次は 6 回呼び出しています。

あなたは基本的に、「最初の要素はありますか? もしそうなら、最初の 6 を取得してください」と尋ねています。ただし、要素が 2 つしかない場合は、IndexOutOfBoundsException が発生します。

foreach ループ構文は自動的に反復子をフェッチするため、コードが削減されます。

これを試して:

<% for (Object o : (ArrayList)request.getAttribute("data"))
   {
%>
    <tr>

        <td width="40"> <input type="text" value="<%=o %>"/></td>
        <td width="40"><input type="text"  name="th2" value="<%=o %>"/></td>
        <td width="40"><input type="text"  value="<%=o %>"/></td>
        <td width="40"><input type="text"  value="<%=o %>"/></td>
        <td width="40"><input type="text"  value="<%=o %>"/></td>
        <td width="40"><input type="text"  value="<%=o %>"/></td>

</tr>
<% } %>
于 2013-07-24T19:27:36.407 に答える