The session.setAttribute(name, value) was invoked with a non-serializable value for memory-based sessions
session.setAttribute(name, value)被没有序列化的直调用
说的不对别骂我!

解决方案 »

  1.   

    User = new CurUser();
    User是什么类型的,是CurUser的么?
    把User设成while内的局部变量试试
      

  2.   

    public class CurUser implements java.io.Serializable作为一个VO,根本就不需要实现Serializable接口,也就是说,不需要序列化.
      

  3.   

    真正的序列化还需要重载这个两个方法:
    public int hashCode();
    public String toString();另外你说get***取不到值,你试着print看看没有,是null值吗?
      

  4.   

    直接放在session里面就行了~~
    要不写个具体的类,实例话后放入session
      

  5.   

    还有,一般用户登入的话都用if(rs.next())的吧。。怎么能用while???
      

  6.   

    晕了,那我不这样写了,我是想写个具体的类,实例话后放入session,可是不知道怎么实现啊,大家帮帮吧
      

  7.   

    这样试试:
    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)
      

  8.   

    不太明白,没看到你在哪边定义了 User啊,你想做什么的 啊!
      

  9.   

    你最好再多摆出来一些源码,还有mbh0210(独孤求败)用法应该是可以的,我曾经写过类似的。
      

  10.   

    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"));
          }
      

  11.   

    if(rs.next()) 
    {
      session.setAttribute("UserId",result.getString("userId"));
      session.setAttribute("UserName",result.getString("userName"));  
      session.setAttribute("UserPwd",result.getString("userPassword"));
      session.setAttribute("Role",result.getString("Role"));
    }