人力资源管理论文设计 下载本文

工信息的修改。

各项管理工作都是在用户成功登录后的管理页面进行的,在管理控制页面的左侧是各项的相关链接,右侧是操作平台。

单击“添加员工信息”,即打开添加员工信息的页面如图5.4所示。

图5.4 添加员工信息页面

添加员工信息的操作步骤如下:

在Struts配置文件strtuts-config.xml中,添加员工信息的链接没有使用ActionForm类,使用Action的实现类ToAddEmployeeAction,在ToAddEmployeeAction中取得部门和职位数据聚集,并传给addEmployee.jsp接受。addEmployee.jsp文件,只是一个普通的JSP文件,但是它的表单元素都是与EmployeeForm相对应,EmployeeForm类继承了struts的ActionForm类,用于封装表单数据。

在addEmployee.jsp页面form表单中的action的值是它要提交的URL,其代码为

addEmployee

Action

\,代码如下所示:

type=\ name=\ scope=\ >

在AddEmployeeAction的execute()方法中,首先是把从EmployeeForm表单转化成的Employee类做为参数传给了EmployeeDAO的addEmployee()方法。再由这个方法向数据库添加员工信息,实现代码如下: public void addEmployee(Employee employee) { }

如果添加成功页面会被发转到/employeeList.do的URL。employeeList.do的的配置文件如下所示:

Session session = HibernateSessionFactory.getSession(); Transaction t = session.beginTransaction(); try {

session.save(employee); session.flush(); t.commit();

if (t!=null) {

} catch (Exception e) { t.rollback(); } }finally{

HibernateSessionFactory.closeSession();

}

type=\ scope=\ >

这样就在页面做一次提交时它访问了

\,把所有员工信息取出来显示给用户,同样EmployeeListAction还是调用EmployeeDAO,取数据库的具体操作在EmployeeDAO文件中,它调用的是EmployeeList ()方法,并返回封装结果集的PageModel对象,EmployeeList ()方法的实现代码如下所示: public PageModel EmployeeList(int offset, int pageSize) { }

EmployeeListAction取出从EmployeeDAO中数据,在把它存到request里,然后返回return mapping.findForward(\,在struts的配置文件里返回页是employeeList.jsp。所有员工的信息都在这个页中显示出来。在显示页中,从request里面的取出数据,如果有则显示在页面上,使用

这是添加员工信息的整个过程,在这个过程中,有一部分是用于显示员工信息的,就是,如果在网页中直接点击这个链接地址,同样也会调用出所有用户的信息。这就是“员工浏览|修改”的链接。页面实现效果如图5.5所示。

员工信息的列表的最后一列可以对该条记录进行删除和修改。删除的链接地址是\}\它向Action的实现类提交了一个参数,是该员工的id这是根据不同记录取出来的。在Action的实现类中得到页面提交过来的员工id,并调用EmployeeDAO的deleteEmployee()方法,其实现如下:

public ActionForward execute(ActionMapping mapping,

PageModel pm = new PageModel();

Session session = HibernateSessionFactory.getSession(); Query query = session.createQuery(\query.setFirstResult(offset); query.setMaxResults(pageSize); List list = query.list(); pm.setList(list);

pm.setCount(this.count());

HibernateSessionFactory.closeSession(); return pm;

ActionForm form,

}

HttpServletRequest request,

HttpServletResponse response) throws String id = request.getParameter(\int employeeId = 0;

if (!(id==null||\}

new EmployeeDAOImpl().deleteEmployee(employeeId); return mapping.findForward(\

Exception {

employeeId = Integer.parseInt(id);

图5.5 浏览员工信息页面

具体的删除操作的代码如下所示:

public void deleteEmployee(int employeeId) {

Session session = HibernateSessionFactory.getSession(); Transaction t = session.beginTransaction(); try {

Employee employee

=(Employee)session.get(Employee.class,employeeId);

session.delete(employee); t.commit(); } catch (Exception e) {

if (t!=null) { t.rollback(); } }finally{

HibernateSessionFactory.closeSession(); } }

删除员工时和添加添加一样都是先得到一个Hibernate的Session,后调用它的delete()方法就可以了,操作完成后千万记得要提交事务,即调用commit()方法,和关闭Session。

修改员工的信息时必须先把要修改的员工信息先查找出来,让用户可以直观的根据以前的信息修改。这样在点击修改时也要传给Action一个用户id,用来查询出用户信息,如下所示:

根据页面的链接可以在Struts的配置文件里找到相应的配置信息,如下所示:

type=\ scope=\ >

它调用了action的实现类EmployeeInfoAction类,返回到employeeInfo.jsp页面,在EmployeeInfoAction类中同前面一样也是根据id的参数来调用EmployeeDAO 的selectEmployee方法,得到员工信息封装类Employee的对象并保存在request中,跳转到employeeInfo.jsp页面,效果如图5.6所示:

employeeInfo.jsp页面从request中取出员工信息,在转化成Employee类型,然后显示在页面中,用户可以进行修改,然后提交到URL为updateEmployee.do的action上,在struts配置文件中定义如下: