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

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

时间: 2024-11-05 04:08:22

OA项目5:系统管理之岗位管理的相关文章

OA项目7:系统管理之部门管理

首注:本学习教程为传智播客汤阳光讲师所公布的免费OA项目视频的文字版,本人用此来加强巩固自己开发知识,如有网友转载,请注明.谢谢. 一 根据需求,根据前台页面功能设计实体,创建javabean.Department.java,内容如下(先不处理上下级部门): 1 package cn.clear.oa.domain; 2 3 public class Department { 4 5 private Long id; 6 private String name; 7 private String

OA项目12:系统管理之用户管理

首注:本学习教程为传智播客汤阳光讲师所公布的免费OA项目视频我的文字版实践笔记,本人用此来加强巩固自己开发知识,如有网友转载,请注明.谢谢. 一 之前在第8节时已经将User实体及映射文件建立好了,所以设计实体已经完成了,下面来做功能了. 二 我们对照静态页面看用户管理页面分析发现,增删改查功能跟之前一样,多了一个初始化密码的请求.当然,这不是问题,下面开始做功能吧! 三 开发: 1.写action及struts2映射,具体如下: 1)UserAction.java: 1 package cn.

OA项目13:系统模块之用户管理密码加密等

首注:本学习教程为传智播客汤阳光讲师所公布的免费OA项目视频我的文字版实践笔记,本人用此来加强巩固自己开发知识,如有网友转载,请注明.谢谢. 一 上节遗留了一个错误,在用户管理list.jsp页面显示岗位时这句<s:iterator value="#roles">是无法将岗位显示的,必须将#去掉便OK了. 二 密码MD5加密: 引入包:commons-codec.jar 在userAction中涉及到密码的add()方法和initPassword()方法中将设置密码的代码改

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

1.部门管理和岗位管理的功能实现是差不多的,首先看下都有哪些功能如图:(这里需要注意的比如如何显示上级部门?在添加的时候如何以树的结构来显示?等等需要非常注意的,本人在这其中遇到很多很多的错误,修改找错大改半天的时间,真的是看起来容易,动起手来都是错!!) 2.分析完功能,首先要做的就是几个请求?需要几个页面?需要几个方法?知道了以后先写DepartmentAction 解释:其中list方法是显示数据库中的相关数据,包括上级部门,上级部门是通过parent.name属性获取的,等下在jsp页面

OA项目14:权限管理功能分析

首注:本学习教程为传智播客汤阳光讲师所公布的免费OA项目视频我的文字版实践笔记,本人用此来加强巩固自己开发知识,如有网友转载,请注明.谢谢. 一 权限管理分析: 1.权限的含义: 即控制管理功能的使用.比如登陆,需要登陆才能看到首页.用户根据自身权限显示其可管理的功能,如用户没有权限,便不会在页面显示. 2.web应用的权限: 每个功能都有相应的一个或多个URL地址,控制用户的URL就可以控制其权限. 3.权限方案: 用户通过角色授权: 用户     --->   角色    --->   权

系统管理模块_岗位管理_实现CRUD功能的具体步骤并设计Role实体

系统管理模块_岗位管理_实现CRUD功能的具体步骤并设计Role实体 1,设计实体/表 设计实体 --> JavaBean --> hbm.xml --> 建表 设计Role实体 1 public class Role { 2 private Long id; 3 private String name; 4 private String description; 5 public Long getId() { 6 return id; 7 } 8 public void setId(L

OA项目15:权限管理实体设计及映射

首注:本学习教程为传智播客汤阳光讲师所公布的免费OA项目视频我的文字版实践笔记,本人用此来加强巩固自己开发知识,如有网友转载,请注明.谢谢. 一 实体设计: 1.权限实体设计: 1)属性设计: 主键:id 关联属性:Set<Role> roles,Set<Privilege> privileges,Privilege parent,Set<Privilege> children 一般属性:name,url 特殊属性:暂无 2)涉及到3个实体:User(用户),Role(

OA项目9:部门管理的上下级部门的功能实现

首注:本学习教程为传智播客汤阳光讲师所公布的免费OA项目视频我的文字版实践笔记,本人用此来加强巩固自己开发知识,如有网友转载,请注明.谢谢. 一 功能分析: 1,列表页面只显示一层的(同级的)部门数据,默认显示最顶级的部门列表. 2,点击部门名称,可以查看此部门相应的下级部门列表. 3,删除部门时,同时删除此部门的所有下级部门. 4,上级部门的列表是有层次结构的(树形). 5,如果是修改:上级部门列表中不能显示当前修改的部门及其子孙部门.因为不能选择自已或自已的子部门作为上级部门. 二 首先,将

系统管理模块_岗位管理_改进_使用ModelDroven方案_套用美工写好的页面效果_添加功能与修改功能使用同一个页面

改进_使用ModelDroven方案 @Controller @Scope("prototype") public class RoleAction extends ActionSupport implements ModelDriven<Role>{//把ModelDriven放到栈顶,帮我们封装参数 //在Action里面要用到Service,用注解@Resource,另外在RoleServiceImpl类上要添加注解@Service @Resource private