用户在页面注册后会收到一封邮件,点击链接激活用户。
点击链接调用action的active方法,根据激活码查询用户,如果查询不到则说明激活码错误,如果查询到,则修改用户的状态为1,并清空激活码以免再次激活。两者都记录信息用于msg页面展示。
1、UserAction.java
/**
* 用户激活的方法
* @return
*/
public String active(){
User existuser = userService.findByCode(user.getCode());
if(existuser==null){
//激活码错误
this.addActionMessage("激活失败:激活码错误!");
}else{
//激活成功
existuser.setState(1);
existuser.setCode(null);
userService.update(existuser);
this.addActionMessage("激活成功!");
}
return "msg";
}
2、UserService.java
/**
* 根据激活码查询用户
* @param code 激活码
* @return
*/
public User findByCode(String code) {
return userDao.findByCode(code);
}
/**
* 更新用户
* @param user
*/
public void update(User user) {
this.userDao.update(user);
}
3、UserDao.java
/**
* 根据激活码查询用户
* @param code 激活码
* @return user 用户
*/
public User findByCode(String code) {
String hql = "from User where code=?";
@SuppressWarnings("unchecked")
List<User> list = this.getHibernateTemplate().find(hql, code);
if(list!=null && list.size()>0){
return list.get(0);
}
return null;
}
/**
* 更新用户
* @param user
*/
public void update(User user) {
this.getHibernateTemplate().update(user);
}