OA项目之部门管理的功能实现

本文探讨了OA项目中部门管理的实现细节,包括如何显示上级部门、以树形结构展示以及在添加和修改过程中可能遇到的问题。作者强调了在实际操作中看似简单却充满挑战的过程,并详细介绍了DepartmentAction中的list方法,以及在JSP页面中使用OGNL、EL、Struts2标签显示数据列表的技巧,特别是select标签的配置与应用。
摘要由CSDN通过智能技术生成

1.部门管理和岗位管理的功能实现是差不多的,首先看下都有哪些功能如图:(这里需要注意的比如如何显示上级部门?在添加的时候如何以树的结构来显示?等等需要非常注意的,本人在这其中遇到很多很多的错误,修改找错大改半天的时间,真的是看起来容易,动起手来都是错!!)



2.分析完功能,首先要做的就是几个请求?需要几个页面?需要几个方法?知道了以后先写DepartmentAction

解释:其中list方法是显示数据库中的相关数据,包括上级部门,上级部门是通过parent.name属性获取的,等下在jsp页面可以看到

            因为在修改和添加页面中都需要用到select标签,其中的name属性为parentId,而我们的modle中是没有的,所以必须在action中手动编写此属性,并提供getter和setter方法。

          还需要注意的就是回显的问题,方法都差不多,只是有的属性model中没有的我们需要另外获取

package com.icss.oa.view.action;
import java.util.List;
import org.springframework.context.annotation.Scope;
import org.springframework.stereotype.Controller;
import com.icss.oa.base.BaseAction;
import com.icss.oa.domain.Department;
import com.opensymphony.xwork2.ActionContext;

@Controller
@Scope("prototype")
public class DepartmentAction extends BaseAction<Department> {
	
	 private Long parentId;
	 

	/** 列表 */
	public String list() throws Exception {
		List<Department> departmentList = departmentService.findAll();
		ActionContext.getContext().put("departmentList", departmentList);
		return "list";
	}

	/** 删除 */
	public String delete() throws Exception {
		departmentService.delete(model.getId());
		return "toList";
	}

	/** 添加页面 */
	public String addUI() throws Exception {
		List<Department> departmentList=departmentService.findAll();
		ActionContext.getContext().put("departmentList",departmentList );
		return "addUI"; 
	}
 
	/** 添加 */
	public String add() throws Exception {
		// 1,新建对象并封装属性,也可以使用model
		//将上级部门值保存
		model.setParent(departmentService.getById(parentId));
		// 2,保存到数据库中
		departmentService.save(model);
		return "toList";
	}

	/** 修改页面 */
	public String editUI() throws Exception {
		List<Department> departmentList=departmentService.findAll();
		ActionContext.getContext().put("departmentList",departmentList );
		// 准备回显的信息
		Department department = departmentService.getById(model.getId());
		ActionContext.getContext().getValueStack().push(department);
		if (department.getParent() != null) {
			parentId = 
  • 3
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值