在用SSH做项目已经有一段时间了,一直都没有问题,但是今天在更改用户登录功能的时候出了问题,情况如下:
访问login.jsp,输入用户名,密码,如果验证错误则报告出错,到这里还没问题。但是如果用户名,密码输入正确,去就报出
javax.servlet.ServletException: java.lang.IllegalArgumentException: setAttribute: Non-serializable attribute
org.apache.struts2.dispatcher.Dispatcher.serviceAction(Dispatcher.java:515)
org.apache.struts2.dispatcher.FilterDispatcher.doFilter(FilterDispatcher.java:419)
的问题
在UserAction中,我是这样写的
public String doLogin(){
User user = getUserService().checkUser(getUsername(), getPassword());
if (user != null){
getSession().setAttribute("user", user);
return IConstant.SUCCESS;
}
return IConstant.LOGIN;
}
调试了一下,user对象是可以得到的,但是在getSession().setAttribute时就出现了上面的异常。请问这是何故?
备注,getSession是这么写的
public HttpSession getSession() {
return ServletActionContext.getRequest().getSession();
}