真是无力吐槽网上的那些解决办法,我的解决办法很简单,前提是你配置好了所有的xml文件,如果你注入成功的话那么就只有一种可能,下面附上我错误时候的前后对比
package action;
import org.hibernate.Session;
import org.hibernate.SessionFactory;
import org.hibernate.cfg.Configuration;
import com.opensymphony.xwork2.ActionSupport;
import dao.Userdao;
public class Register extends ActionSupport {
private String username;
private String password;
private Userdao userdao;
private String code;
public int su = 0;
public void validate() {
clearFieldErrors();
Userdao userdao = new Userdao();
Session session = util.GetSessionFactory.getSession();
if ("".equalsIgnoreCase(username)) {
addFieldError("username","用户名非法!");
}
if ("".equalsIgnoreCase(password)) {
addFieldError("password","密码非法!");
}
if (!"".equalsIgnoreCase(code)&&userdao.checkcode(code,session)) {
addFieldError("code","邀请码错误!");
su=0;
}
else if("".equalsIgnoreCase(code)){
su=0;
}
else {
su=1;
}
}
public String execute() throws Exception {
<span style="font-family: Arial, Helvetica, sans-serif;"> </span><span style="color:#ff0000;font-family: Arial, Helvetica, sans-serif;">userdao = new Userdao();</span>
boolean result = userdao.adduser(username, password,su);
if (result == true) {
return SUCCESS;
} else {
return INPUT;
}
}
public String getUsername() {
return username;
}
public void setUsername(String username) {
this.username = username;
}
public String getPassword() {
return password;
}
public void setPassword(String password) {
this.password = password;
}
public String getCode() {
return code;
}
public void setCode(String code) {
this.code = code;
}
public Userdao getUserdao() {
return userdao;
}
public void setUserdao(Userdao userdao) {
this.userdao = userdao;
}
}
新的userdao声明覆盖掉了spring注入的值,所以删掉这个声明即可