在jsp中使用request.getAttribute之后我怎么打印?

时间:2017-03-05 19:49:24

标签: java jsp getattribute

在我的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;

那我该怎么做才能打印清单呢?

谢谢。

1 个答案:

答案 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代码更可取:

    servlet中的
  1. List<String> list = new ArrayList<>();
    
    request.setAttribute("list" , list);
    
    RequestDispatcher dispatcher=request.getRequestDispatcher("result.jsp");
    dispatcher.forward(request,response);
    
    1. 在Jsp中:
    2. <%@ taglib prefix="c" uri="http://java.sun.com/jstl/core" %>
      
      <c:forEach items="${list}" var="element">
      
          //use the element here...
          ${element}
      
      </c:forEach>