=======================================================
DTO= Data Transfer Object
数据传输对象
VO = Value Object
值对象
=======================================================
界面原型
实体类
package com.bjsxt.registration.vo;
public class UserRegisterInfo {
private String username;
private String password;
private String password2;
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 getPassword2() {
return password2;
}
public void setPassword2(String password2) {
this.password2 = password2;
}
}
package com.bjsxt.registration.action;
import com.bjsxt.registration.model.User;
import com.bjsxt.registration.service.UserManager;
import com.bjsxt.registration.vo.UserRegisterInfo;
import com.opensymphony.xwork2.ActionSupport;
import com.opensymphony.xwork2.ModelDriven;
@SuppressWarnings("serial")
// 如果要使用模型驱动,得实现ModelDriven里面的getModel(DTO)
// >>>它是Struts2种独有的一种接收用户输入的机制,想在项目中使用模型驱动
// >>>(ModelDriven)需要让Action实现com.opensymphony.xwork2.ModelDriven 接口,使用它
// >>>的getModel()方法来通知Struts2要注入的属性类型,并且声明属性时一定要实例化,但不需get,
// >>>set方法。
public class UserAction extends ActionSupport implements
ModelDriven<UserRegisterInfo> {
private UserRegisterInfo info;
private UserManager userManager;
public UserManager getUserManager() {
return userManager;
}
public void setUserManager(UserManager userManager) {
this.userManager = userManager;
}
public UserRegisterInfo getInfo() {
return info;
}
public void setInfo(UserRegisterInfo info) {
this.info = info;
}
@Override
public String execute() throws Exception {
User user = new User();
user.setUsername(info.getUsername());
user.setPassword(info.getPassword());
if (userManager.exists(user)) {
return "FAIL";
}
userManager.add(user);
return "SUCCESS";
}
public UserRegisterInfo getModel() {
return info;
}
}
package com.bjsxt.registration.model;
//贫血模型 充血模型
public class User {
private Integer id;
private String username;
private String password;
public Integer getId() {
return id;
}
public void setId(Integer id) {
this.id = id;
}
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;
}
}
package com.bjsxt.registration.dao;
import com.bjsxt.registration.model.User;
public interface UserDao {
/** 保存数据 */
public void save(User user);
/** 查询某个数据是否存在 */
public boolean checkUserExistsWithName(String username);
}
package com.bjsxt.registration.dao.impl;
import java.util.List;
import org.springframework.orm.hibernate3.HibernateTemplate;
import com.bjsxt.registration.dao.UserDao;
import com.bjsxt.registration.model.User;
public class UserDaoImpl implements UserDao {
private HibernateTemplate hibernateTemplate;
public HibernateTemplate getHibernateTemplate() {
return hibernateTemplate;
}
public void setHibernateTemplate(HibernateTemplate hibernateTemplate) {
this.hibernateTemplate = hibernateTemplate;
}
public void save(User user) {
hibernateTemplate.save(user);
}
public boolean checkUserExistsWithName(String username) {
List