The session.setAttribute(name, value) was invoked with a non-serializable value for memory-based sessions session.setAttribute(name, value)被没有序列化的直调用 说的不对别骂我!
这样试试: ArrayList list=new ArrayList(); while (rs.next()) { User = new CurUser(); User.setUserId(rs.getString("USERID")); User.setUserName(rs.getString("USERNAME")); User.setUserPws(rs.getString("USERPASSWORD")); User.setUserRole(rs.getString("ROLE")); list.add(User); } session.setAttribute("list",list)
不太明白,没看到你在哪边定义了 User啊,你想做什么的 啊!
你最好再多摆出来一些源码,还有mbh0210(独孤求败)用法应该是可以的,我曾经写过类似的。
private User UserRecord; //用户详细信息是在这之前就定义的了 while (rs.next()) { User = new CurUser(); User.setUserId(rs.getString("USERID")); User.setUserName(rs.getString("USERNAME")); User.setUserPws(rs.getString("USERPASSWORD")); User.setUserRole(rs.getString("ROLE")); }
User是什么类型的,是CurUser的么?
把User设成while内的局部变量试试
public int hashCode();
public String toString();另外你说get***取不到值,你试着print看看没有,是null值吗?
要不写个具体的类,实例话后放入session
ArrayList list=new ArrayList();
while (rs.next()) {
User = new CurUser();
User.setUserId(rs.getString("USERID"));
User.setUserName(rs.getString("USERNAME"));
User.setUserPws(rs.getString("USERPASSWORD"));
User.setUserRole(rs.getString("ROLE"));
list.add(User);
}
session.setAttribute("list",list)
User = new CurUser();
User.setUserId(rs.getString("USERID"));
User.setUserName(rs.getString("USERNAME"));
User.setUserPws(rs.getString("USERPASSWORD"));
User.setUserRole(rs.getString("ROLE"));
}
{
session.setAttribute("UserId",result.getString("userId"));
session.setAttribute("UserName",result.getString("userName"));
session.setAttribute("UserPwd",result.getString("userPassword"));
session.setAttribute("Role",result.getString("Role"));
}