JavaEE项目实战(OA系统)之十_部门管理之四
2016-09-10 10:08
375 查看
JavaEE项目实战(OA系统)之十_部门管理之四
四、action
action部分是struts框架处理页面请求的核心。
在struts2中,一个Action类可以是一个普通的类,并不需要继承自特殊的类。
一个Action类中可以有多个方法,在每个方法前加注解@Action,并指定访问路径即可。
在实际业务中,把action分成两种,一种有前缀词to,例如toDeptList,toDeptAdd,toDeptEdit,表示这个操作是要跳转到列表页、新增页、编辑页,在跳转前一般需要先取得数据,再跳转到指定页面;另一种没有前缀词to,例如deptAdd,deptUpdate,deptDel,表示这个操作是对数据的实际操作,将会执行数据的新增、修改、删除等,一般先执行数据操作,再跳转到指定页面。
在Action类前,用@Result注解指定跳转页面。
需要与页面交互的变量,都可以定义在Action类中,作为该类的一个属性,例如dept,deptList,deptId等,这些变量需要在页面和Action之间来回传递,所以都定义为Action类的属性,并提供get/set方法。
代码如下:
四、action
action部分是struts框架处理页面请求的核心。
在struts2中,一个Action类可以是一个普通的类,并不需要继承自特殊的类。
一个Action类中可以有多个方法,在每个方法前加注解@Action,并指定访问路径即可。
在实际业务中,把action分成两种,一种有前缀词to,例如toDeptList,toDeptAdd,toDeptEdit,表示这个操作是要跳转到列表页、新增页、编辑页,在跳转前一般需要先取得数据,再跳转到指定页面;另一种没有前缀词to,例如deptAdd,deptUpdate,deptDel,表示这个操作是对数据的实际操作,将会执行数据的新增、修改、删除等,一般先执行数据操作,再跳转到指定页面。
在Action类前,用@Result注解指定跳转页面。
需要与页面交互的变量,都可以定义在Action类中,作为该类的一个属性,例如dept,deptList,deptId等,这些变量需要在页面和Action之间来回传递,所以都定义为Action类的属性,并提供get/set方法。
代码如下:
// 结果页 @Results({ @Result(name = "list", location = "/manage/basic/deptList.jsp"), @Result(name = "add", location = "/manage/basic/deptAddEdit.jsp"), @Result(name = "edit", location = "/manage/basic/deptAddEdit.jsp"), }) public class DeptAction { @Resource private DeptBiz deptBiz; // 业务逻辑层对象 private Dept dept; // 实体对象 private List<Dept> deptList; // 列表对象 private int deptId; // id private String oper; // 用于区分新增或修改 private String msg; // 错误提示 // 跳转到列表页 @Action(value = "toDeptList") public String toList() { // 取得列表 deptList = deptBiz.getAll(); return "list"; } // 跳转到新增页 @Action(value = "toDeptAdd") public String toAdd() { // 初始化对象 dept = new Dept(); oper = "add"; return "add"; } // 跳转到修改页 @Action(value = "toDeptEdit") public String toEdit() { // 取得对象 dept = deptBiz.getById(deptId); oper = "edit"; return "edit"; } // 新增动作 @Action(value = "deptAdd") public String add() { try { if (dept.getpId() == 0) { dept.setLevel(1); } else { Dept parent = deptBiz.getById(dept.getpId()); dept.setLevel(parent.getLevel() + 1); } // 保存对象 deptBiz.add(dept); // 重新取得列表 deptList = deptBiz.getAll(); // 跳转到列表页 return "list"; } catch (Exception e) { e.printStackTrace(); // 错误提示 msg = "部门新增失败!"; // 跳转回新增页 return "add"; } } // 修改动作 @Action(value = "deptUpdate") public String update() { try { if (dept.getpId() == 0) { dept.setLevel(1); } else { Dept parent = deptBiz.getById(dept.getpId()); dept.setLevel(parent.getLevel() + 1); } // 保存对象 deptBiz.update(dept); // 重新取得列表 deptList = deptBiz.getAll(); // 跳转到列表页 return "list"; } catch (Exception e) { e.printStackTrace(); // 错误提示 msg = "部门修改失败!"; // 跳转回修改页 return "edit"; } } // 修改动作 @Action(value = "deptDel") public String del() { try { // 删除对象 deptBiz.del(deptId); } catch (Exception e) { e.printStackTrace(); } // 重新取得列表 deptList = deptBiz.getAll(); // 跳转到列表页 return "list"; } // getter & setter // ...... }
相关文章推荐
- JavaEE项目实战(OA系统)之九_部门管理之三
- JavaEE项目实战(OA系统)之七_部门管理之一
- JavaEE项目实战(OA系统)之十二_部门管理之六
- JavaEE项目实战(OA系统)之十一_部门管理之五
- JavaEE项目实战(OA系统)之八_部门管理之二
- JavaEE项目实战(OA系统)之十四_员工管理之二
- JavaEE项目实战(OA系统)之十四_员工管理之三
- JavaEE项目实战(OA系统)之十三_员工管理之一
- JavaEE项目实战(OA系统)之十五_员工管理之四
- JavaEE项目实战(OA系统)之十六_ztree之一
- JavaEE项目实战(OA系统)之十八_流程审批之一
- JavaEE项目实战(OA系统)之十七_ztree之二
- JavaEE项目实战(OA系统)之二十一_流程审批之四
- JavaEE项目实战(OA系统)之二_数据库设计
- JavaEE项目实战(OA系统)之六_三大框架整合之三
- JavaEE项目实战(OA系统)之三_数据库实现
- JavaEE项目实战(OA系统)之四_三大框架整合之一
- JavaEE项目实战(OA系统)之十九_流程审批之二
- JavaEE项目实战(OA系统)之一_软件需求
- JavaEE项目实战(OA系统)之五_三大框架整合之二