首页 > 代码库 > OA项目5:系统管理之岗位管理

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()listlist.jsp
删除delete()toListlist.jsp
添加add()toListlist.jsp
添加页面addUI()addUIaddUI.jsp
修改edit()toListlist.jsp
修改页面editUI()editUIeditUI.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 @Controller17 @Scope("prototype")18 public class RoleAction extends ActionSupport{19     20     @Resource21     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 @Service14 @Transactional15 public class RoleServiceImpl implements RoleService{16     @Resource17     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

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

 

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