您的位置:首页 > 编程语言 > Java开发

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方法。

  代码如下:

// 结果页
@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
// ......
}
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息