0

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

小服务程序 1 -> JSP1 -> JSP2 -> 小服务程序 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)

我究竟做错了什么?

4

2 回答 2

0

尝试投射到List<UserApplication>.

于 2013-02-15T22:01:01.390 回答
0

铸造工作正常,与列表的大小无关。铸造只是告诉你,你所存储的userList实际上是一个 ArrayList。如果大小不同,则似乎暗示您的逻辑在其他地方存在错误。userList调用后是否更改变量引用的列表session.setAttribute()

于 2013-02-15T21:59:10.083 回答