public class UserAction extends ActionSupport implements ModelDriven{
private UserRegisterInfo userRegisterInfo = new UserRegisterInfo();
private UserManager userManager;
private List<User> users;
private User user;
public UserRegisterInfo getUserRegisterInfo() {
return userRegisterInfo;
}
public void setUserRegisterInfo(UserRegisterInfo userRegisterInfo) {
this.userRegisterInfo = userRegisterInfo;
}
public UserManager getUserManager() {
return userManager;
}
public void setUserManager(UserManager userManager) {
this.userManager = userManager;
}
public List<User> getUsers() {
return users;
}
public void setUsers(List<User> users) {
this.users = users;
}
public User getUser() {
return user;
}
public void setUser(User user) {
this.user = user;
}
public String list(){
users = userManager.getUsers();
return "list";
}
public String load(){
user = userManager.loadById(userRegisterInfo.getId());
return "load";
}
@Override
public String execute() throws Exception {
User user = new User();
user.setUsername(userRegisterInfo.getUsername());
user.setPassword(userRegisterInfo.getPassword());
if(!userManager.exists(user)){
return "error";
}
userManager.add(user);
return "success";
}
@Override
public Object getModel() {
return userRegisterInfo;
}
}
<bean id="user" class="com.spring.registration.action.UserAction" scope="prototype">
<property name="userManager" ref="userManager"></property>
</bean>
由于UserAction中有属性user,而bean中也有一个user,所以会把UserAction注入到public void setUser(User user)的user中,会出现上述错误。
解决办法就是把bean中的user换个名字,也可以去掉actin的bean。