6

我知道在 JSPS 中使用 jstl 是最好的,但我被明确告知在这个项目中使用 scriptlet。我的问题是我的 servlet 将一个 Arraylist 项目附加到请求对象,我想使用 scriptlet 循环该项目。

示例:我的 servlet 附加它并将其转发到 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

你试过request.getAttribute吗?

于 2012-06-04T01:19:26.180 回答
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 循环中,条件应该是 i

于 2012-06-04T02:24:45.773 回答