首页 > 代码库 > 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 }
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>
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 @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 }
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 }
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 }
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 }
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 }
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>
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>
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>
启动服务器,可以试试各个功能请求效果。至此,我们就完成了这个岗位管理的全部功能代码了。
OA项目5:系统管理之岗位管理