在我的servlet中,我有:
List list = new ArrayList();
....
request.getSession().setAttribute("list",list);
RequestDispatcher dispatcher=request.getRequestDispatcher("result.jsp");
dispatcher.forward(request,response);
在我的result.jsp文件中,我想打印出网站上的支票,所以我尝试了:
String[] str = (String[])request.getAttribute("list");
但是有一个错误说
org.apache.jasper.JasperException: java.lang.ClassCastException: java.util.ArrayList cannot be cast to [Ljava.lang.String;
那我该怎么做才能打印清单呢?
谢谢。
答案 0 :(得分:1)
实际上list
的类型为ArrayList
而不是Array
,因此请尝试以下方式:
<%
ArrayList<String> list = (ArrayList<String>) request.getSession().getAttribute("list") ;
//do something ...
%>
并确保您允许jsp
使用Session
<%@ page session="true" %>
然而,正如@JBNizet所说,在jsp页面中使用jstl
表达式比使用Java代码更可取:
List<String> list = new ArrayList<>();
request.setAttribute("list" , list);
RequestDispatcher dispatcher=request.getRequestDispatcher("result.jsp");
dispatcher.forward(request,response);
<%@ taglib prefix="c" uri="http://java.sun.com/jstl/core" %>
<c:forEach items="${list}" var="element">
//use the element here...
${element}
</c:forEach>