前面对于 Struts2 的开发环境的搭建、配置文件以及 Struts2 的值栈都已经进行过叙述了!这次博文我们讲解利用 Struts2 进行 CURD 操作,体验和 Servlet 的不一样,以此案例理解 ModelDriven 和 Prepareable 拦截器!
如上目录,其代码如下
public class EmployeeCurd implements RequestAware, ModelDriven<Employoee> {
private Dao dao = new Dao();
private Map<String, Object> requestMap;
private Employoee employoee;
private Integer empId;
public Integer getEmpId() {
return empId;
}
public void setEmpId(Integer empId) {
this.empId = empId;
}
public String delete() {
dao.deleteEmp(String.valueOf(empId));
return "delete";
}
public String update() {
dao.updateEmp(employoee);
return "update";
}
public String add() {
dao.addEmp(employoee);
return "add";
}
public String show() {
List<Employoee> employees = dao.getEmployee();
requestMap.put("empList", employees);
return "show";
}
public String edit() {
return "edit";
}
@Override
public void setRequest(Map<String, Object> map) {
this.requestMap = map;
}
@Override
public Employoee getModel() {
/*
* 判断调用该拦截器的时候是 edit 还是 show,这取决于是否有参数 empId,决定了 Employee 对象是新建还是依据 empId 获取
* */
if (empId != null) {
employoee = dao.getEmployee(String.valueOf(empId));
} else {
employoee = new Employoee();
}
return employoee;
}
}
结论
至此就是有关 ModelDriven 和 prepare 拦截器的案例,中间存在任何问题和表述不足的还望大神指出,谢谢!