6

JSPSでjstlを使用するのが最善だと知っていますが、このプロジェクトでスクリプトレットを使用するように明示的に指示されています。私の質問は、サーブレットがArraylistのアイテムをリクエストオブジェクトに添付し、スクリプトレットを使用してそのアイテムをループしたかったことです。

例:私のサーブレットはこれを添付してjspに転送します

 request.setAttribute("list", Content); where Content is Arraylist<String>

jspは、このオブジェクトを取得して、私が試したページに印刷することです。

  <%    
          ArrayList<String> cont =  (ArrayList)request.getAttribute("Content");
          for (int i=0;i<cont.size();i++)
          {
              out.println(cont.get(i));

          }
   %> 

これが私が得るエラーです

org.apache.jasper.JasperException: An exception occurred processing JSP page /EnrolledSuccess.jsp at line 35

32:           ArrayList<String> cont =  (ArrayList)request.getAttribute("cont");
33:           for (int i=0;i<=cont.size();i++)
34:           {
35:               out.println(cont.get(i));
36:               
37:           }
38:    %> 
4

4 に答える 4

6

Arraylistで要素を繰り返してみてくださいIterator

out.printlnブラウザにSystem.out.println()出力され、サーバー コンソールに出力されます。

<%    
          ArrayList<String> cont =  (ArrayList)request.getAttribute("list");
          Iterator<String> itr = cont.iterator();
          while (itr.hasNext()) {
          String element = itr.next();
          out.println(element);
    }
   %> 
于 2012-06-04T02:08:28.830 に答える
0
first, you must get attribute from request.
<br/>
<%<br/>
  ArrayList<String> list = (ArrayList<String>)request.getAttribute("list");<br/>
    for(int i = 0; i < list.size(); i++){<br/>
        //you can print the value<br/>
        out.printLn(list.get(i));<br/>
    }<br/>
%><br/>
于 2012-06-04T01:33:32.530 に答える
0

ArrayList のインデックスは「0」から始まるため、for ループの条件は次のいずれかになります。

于 2012-06-04T02:24:45.773 に答える
0

request.getAttribute を試しましたか?

于 2012-06-04T01:19:26.180 に答える