试图从servlet中的会话中检索arraylist

时间:2013-02-15 21:52:49

标签: java jsp servlets

我正在使用HttpSession将ArrayList userList作为会话属性存储在原始Servlet中,然后再将其传递给JSP。然后在下一个JSP中调用它,然后从该JSP调用另一个Servlet。

Servlet 1 - > JSP1 - > JSP2 - > Servlet 2

在Servlet 1中,我将其设置为session:

if (!userList.isEmpty()) {
    session.setAttribute("userList", userList); 
}    

我在JSP 1和JSP 2中迭代它并在Servlet 2中再次调用它。我需要将ArrayList用作servlet 2中另一个方法的参数。

EditStudentForm edt = (EditStudentForm)form;
List<UserApplication> studtList = new ArrayList<UserApplication>();
if ((session.getAttribute("userList")) instanceof List){
    studtList = (ArrayList<UserApplication>)request.getSession().getAttribute("userList");
}
try {
    uaDAO.editUser(edt,studtList);
    action_forward = EDITSUCCESS;
}

看起来铸件并没有真正起作用,因为ArrayList的大小是1(我预计大小至少为30)

我做错了什么?

2 个答案:

答案 0 :(得分:0)

Casting工作正常,与列表的大小无关。 Casting只是告诉你,你在userList中存储的内容实际上是一个ArrayList。如果大小不同,那么它似乎意味着你的逻辑中存在一个错误。在调用userList后,您是否更改了变量session.setAttribute()引用的列表?

答案 1 :(得分:0)

尝试转换为List<UserApplication>

相关问题