• 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

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

  • 相关阅读:
    2012619 win7环境Jooma建站手记解决问题
    linux学习(4)ubuntu开机自动挂载nfs服务器上的home分区
    linux学习(3)nginx tomcat集群
    oracle to_date 函数
    inux学习(2)vim设置
    linux学习(1)常用命令入门
    tomcat域名绑定
    tomcat内存溢出问题解决思路
    TreeView控件无限级 一次性加载和异步加载剖析
    数据查询支持中文拼音首字母模糊检索
  • 原文地址:https://www.cnblogs.com/clear5/p/4037593.html
Copyright © 2020-2023  润新知