之前写了个struts2的例子,action什么的都没有变化,可是就报错
public class UserAction extends ActionSupport implements SessionAware{
private Map session;
private User user;
public String login(){
String result;
System.out.println("login-----"+user.getUsername());
UserHibernateDaoImpl userDao=new UserHibernateDaoImpl();
User loginUser=userDao.login(user.getUsername(),user.getPassword());
userDao.closeSession();
if(loginUser==null){
result=LOGIN;
}else{
session.put("user", loginUser);
result=SUCCESS;
}
return result;
}
public void setSession(Map session) {
this.session = session;
}
public void setUser(User user) {
this.user = user;
}
}
调试之后发现时user为null有两种可能出现这样的问题
第一种可能:
struts2中表单提交按钮:
<input type="Submit" name="Submit" value=" 查 询 " />
这样会报题目的错误.其实把submit的name属性删掉或者
<input type="button" name="Submit" value=" 查 询 " οnclick="document.form.submit();"/>
都是可以解决的,估计凡是在struts2中没有定义getter,setter方法的form中的input都要被抛出异常
第二种可能:
原来的pojo类中重写了构造方法,却没有提供默认的空构造函数。
加上public Book(){};即可。
我就是第二种情况。