OA项目5:系统管理之岗位管理

首注:本学习教程为传智播客汤阳光讲师所公布的免费OA项目视频我的文字版实践笔记,本人用此来加强巩固自己开发知识,如有网友转载,请注明。谢谢。

一 设计实体和表

  1.建立javabean,建立角色类Role.java,具体如下:  

  
 1 package cn.clear.oa.domain;

 2 

 3 public class Role {

 4 

 5     private Long id;

 6     private String name;

 7     private String description;

 8     public Long getId() {

 9         return id;

10     }

11     public void setId(Long id) {

12         this.id = id;

13     }

14     public String getName() {

15         return name;

16     }

17     public void setName(String name) {

18         this.name = name;

19     }

20     public String getDescription() {

21         return description;

22     }

23     public void setDescription(String description) {

24         this.description = description;

25     }

26     

27     

28 }
Role.java

  2.建立相应的Role.hbm.xml映射文件,具体如下:

  
 1 <?xml version="1.0"?>

 2 <!DOCTYPE hibernate-mapping PUBLIC 

 3     "-//Hibernate/Hibernate Mapping DTD 3.0//EN"

 4     "http://www.hibernate.org/dtd/hibernate-mapping-3.0.dtd">

 5 

 6 <hibernate-mapping package="cn.clear.oa.domain">

 7     <class name="Role" table="oa_role">

 8         <id name="id"><generator class="native"/></id>

 9         <property name="name"/>

10         <property name="description"/>

11     </class>

12 </hibernate-mapping>
Role.hbm.xml

  3.将上面的映射文件在hibernate.cfg.xml中配置,内容如下:

  <mapping resource="cn/clear/oa/domain/Role.hbm.xml" />

二 岗位管理功能分析:

  查询:点击岗位管理,进入一个结果列表显示页面,在这个页面里,分别有添加,修改,删除按钮。(需要一个请求)

  添加:点击添加,进入添加页面,然后填写完信息,点击保存,返回到结果列表显示页面。(需要两个请求)

  修改:点击修改,进入修改页面,然后填写完信息,点击保存,返回到结果列表显示页面。(需要两个请求)

  删除:点击删除,弹出是否删除对话框,点击是,删除该条记录。(需要一个请求)

  注意:从一个功能转到另一个功能,必须用重定向,防止刷新重复提交表单;一个功能的内部跳转使用转发。所以查询,添加,修改,删除需要用到重定向。

  增删改查共有4个功能,需要6个请求。需要相应6个Action方法,每个Action方法处理一个请求。  

功能 方法名 返回值 结果页面
列表(查询) list() list list.jsp
删除 delete() toList list.jsp
添加 add() toList list.jsp
添加页面 addUI() addUI addUI.jsp
修改 edit() toList list.jsp
修改页面 editUI() editUI editUI.jsp

 

  根据上表的分析,我们定制实现功能的步骤,然后根据步骤去一一实现,以下为步骤:

    1).写Action类,写类中方法,实现方法,确定Service中的方法。

    写相应的Action方法。我们先写一个RoleAction.java,然后在里面写相应的Action方法,具体内容如下:   

    
 1 package cn.clear.oa.view.action;

 2 

 3 import java.util.List;

 4 

 5 import javax.annotation.Resource;

 6 

 7 import org.springframework.context.annotation.Scope;

 8 import org.springframework.stereotype.Controller;

 9 

10 import cn.clear.oa.domain.Role;

11 import cn.clear.oa.service.RoleService;

12 

13 import com.opensymphony.xwork2.ActionContext;

14 import com.opensymphony.xwork2.ActionSupport;

15 

16 @Controller

17 @Scope("prototype")

18 public class RoleAction extends ActionSupport{

19     

20     @Resource

21     private RoleService roleService;

22     

23     private Long id;

24     private String name;

25     private String description;

26     /**显示列表*/

27     public String list() throws Exception {

28         List<Role> roleList = roleService.findAll();

29         ActionContext.getContext().put("roleList", roleList);

30         return "list";

31     }

32     /**添加页面*/

33     public String addUI() throws Exception {

34         

35         return "addUI";

36     }

37     /**添加*/

38     public String add() throws Exception {

39         //封装数据到对象

40         Role role = new Role();

41         role.setName(name);

42         role.setDescription(description);

43         //将对象保存到数据库

44         roleService.save(role);

45         return "toList";

46     }

47     /**修改页面*/

48     public String editUI() throws Exception {

49         //准备回显数据

50         Role role = roleService.findById(id);

51         //将对象的值放在栈顶

52         ActionContext.getContext().getValueStack().push(role);

53         return "editUI";

54     }

55     /**修改*/

56     public String edit() throws Exception {

57         //拿到准备好修改的对象

58         Role role = roleService.findById(id);

59         //设置要修改的属性

60         role.setName(name);

61         role.setDescription(description);

62         //将对象持久化到数据库

63         roleService.update(role);

64         return "toList";

65     }

66     /**删除*/

67     public String delete() throws Exception {

68         roleService.delete(id);

69         return "toList";

70     }

71     //----

72     public Long getId() {

73         return id;

74     }

75     public void setId(Long id) {

76         this.id = id;

77     }

78     public String getName() {

79         return name;

80     }

81     public void setName(String name) {

82         this.name = name;

83     }

84     public String getDescription() {

85         return description;

86     }

87     public void setDescription(String description) {

88         this.description = description;

89     }

90      

91     

92 }
RoleAction.java

    2).写Service类,并写相应方法。确定Dao中的方法。

    RoleService.java    

    
 1 package cn.clear.oa.service;

 2 

 3 import java.util.List;

 4 

 5 import cn.clear.oa.domain.Role;

 6 

 7 public interface RoleService {

 8 

 9     List<Role> findAll();

10 

11     void delete(Long id);

12 

13     void save(Role role);

14 

15     Role findById(Long id);

16 

17     void update(Role role);

18 

19 }
RoleService.java

    RoleServiceImpl.java

    
 1 package cn.clear.oa.service.impl;

 2 

 3 import java.util.List;

 4 

 5 import javax.annotation.Resource;

 6 

 7 import org.springframework.stereotype.Service;

 8 import org.springframework.transaction.annotation.Transactional;

 9 

10 import cn.clear.oa.dao.RoleDao;

11 import cn.clear.oa.domain.Role;

12 import cn.clear.oa.service.RoleService;

13 @Service

14 @Transactional

15 public class RoleServiceImpl implements RoleService{

16     @Resource

17     private RoleDao roleDao;

18 

19     public List<Role> findAll() {

20         

21         return roleDao.findAll();

22     }

23 

24     public void delete(Long id) {

25         

26         roleDao.delete(id);

27     }

28 

29     public void save(Role role) {

30         

31         roleDao.save(role);

32     }

33 

34     public Role findById(Long id) {    

35         return roleDao.findById(id);

36     }

37 

38     public void update(Role role) {

39         

40         roleDao.update(role);

41     }

42 

43 }
RoleServiceImpl.java

    3).写相应的Dao类,并写相应方法,实现。(之前我们已经整合了dao层的代码,所以现在所用方法就比较简洁了)

    RoleDao.java

    
1 package cn.clear.oa.dao;

2 

3 import cn.clear.oa.base.BaseDao;

4 import cn.clear.oa.domain.Role;

5 

6 public interface RoleDao extends BaseDao<Role>{

7 

8 }
RoleDao.java

    RoleDaoImpl.java

    
 1 package cn.clear.oa.dao.impl;

 2 

 3 import org.springframework.stereotype.Repository;

 4 

 5 import cn.clear.oa.base.BaseDaoImpl;

 6 import cn.clear.oa.dao.RoleDao;

 7 import cn.clear.oa.domain.Role;

 8 @Repository

 9 public class RoleDaoImpl extends BaseDaoImpl<Role> implements RoleDao{

10 

11 }
RoleDaoImpl.java

    4).根据结果数据写相应的jsp。

    list.jsp

    
 1 <%@ page language="java" import="java.util.*" pageEncoding="UTF-8"%>

 2 <%@ taglib prefix="s" uri="/struts-tags"%> 

 3 

 4 <!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">

 5 <html>

 6   <head>

 7    

 8     <title>岗位列表</title>

 9   </head>

10   

11   <body>

12     <s:iterator value="#roleList">

13         <s:property value="id"/>,

14         <s:property value="name"/>,

15         <s:property value="description"/>,

16         <s:a action="role_editUI?id=%{id}">修改</s:a>;

17         <s:a action="role_delete?id=%{id}" onclick="return confirm('确定删除吗?')">删除</s:a>

18         <br>

19     </s:iterator>

20     <s:a action="role_addUI">新建</s:a>

21   </body>

22 </html>
list.jsp

    addUI.jsp

    
 1 <%@ page language="java" import="java.util.*" pageEncoding="UTF-8"%>

 2 <%@ taglib prefix="s" uri="/struts-tags"%>

 3 

 4 <!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">

 5 <html>

 6   <head>

 7    

 8     <title>添加页面</title>

 9   </head>

10   

11   <body>

12     <s:form action="role_add">

13         岗位名称:<s:textfield name="name"></s:textfield><br>

14         岗位说明:<s:textarea name="description"></s:textarea><br>

15         <s:submit value="提交"></s:submit>

16     </s:form>

17   </body>

18 </html>
addUI.jsp

    editUI.jsp   

    
 1 <%@ page language="java" import="java.util.*" pageEncoding="UTF-8"%>

 2 <%@ taglib prefix="s" uri="/struts-tags"%>

 3 

 4 <!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">

 5 <html>

 6   <head>

 7    

 8     <title>修改页面</title>

 9   </head>

10   

11   <body>

12     <s:form action="role_edit">

13         <s:hidden name="id"></s:hidden>

14         岗位名称:<s:textfield name="name"></s:textfield><br>

15         岗位说明:<s:textarea name="description"></s:textarea><br>

16         <s:submit value="提交"></s:submit>

17     </s:form>

18   </body>

19 </html>
editUI.jsp

  启动服务器,可以试试各个功能请求效果。至此,我们就完成了这个岗位管理的全部功能代码了。  

 

你可能感兴趣的:(管理)