我在使用HttpSession将ArrayList userList
作为来自原始Servlet的会话属性存储,然后将它传递给JSP。然后在下一个JSP中调用它,然后从该JSP中调用另一个Servlet。试图从servlet中的会话中检索arraylist
的Servlet 1 - > JSP1 - > JSP2 - > Servlet的2
在Servlet的1,我已经将它设置为会话:
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(I”米期待一个大小至少30)
我在做什么错?
你得到的错误是什么? – Amit 2013-02-15 21:59:20
umm .. a)这一切都在一个请求b)如果是,为什么你不把它保存为一个请求属性c)如果不是,你的机制从jsp转到servlet是什么d)即使它是,你为什么要从jsp去servlet? – eis 2013-02-15 21:59:38
如果它在会话中,它在会话中。你确定你正在访问你认为你的数据吗?此外,如果您正在检查“List”,则不要强制转换为“ArrayList” - 将其转换为List。 – 2013-02-15 21:59:41