关键词:
系统管理模块_岗位管理_实现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(Long id) { 9 this.id = id; 10 } 11 public String getName() { 12 return name; 13 } 14 public void setName(String name) { 15 this.name = name; 16 } 17 public String getDescription() { 18 return description; 19 } 20 public void setDescription(String description) { 21 this.description = description; 22 } 23 }
映射文件
<hibernate-mapping package="cn.itcast.oa.domain"> <class name="Role" table="itcast_role"> <id name="id"> <generator class="native" /> </id> <property name="name"></property> <property name="description"></property> </class> </hibernate-mapping>
加到hibernate.cfg.xml配置中,让它知道有这个映射文件才能建表
<mapping resource="cn/itcast/oa/domain/Role.hbm.xml" />
运行测试类,创建SessionFactory时就会创建itcast_role表
//测试SessionFactory @Test public void testSessionFactory() throws Exception { SessionFactory sessionFactory = (SessionFactory)ac.getBean("sessionFactory"); System.out.println(sessionFactory); }
2,分析有几个功能,对应几个请求。
添加、修改、删除成功后 要重定向到列表功能,这样在刷新页面时才不会出现“又做一次增、删、改”的操作。
列表与删除功能都是只有一个请求
添加与修改功能都是有两个请求
增删改查共4个功能,6个请求,需要在Action中有6个对应的处理方法。
作用 |
方法名 |
返回值 |
对应的JSP页面 |
列表 |
list() |
list |
list.jsp |
删除 |
delete() |
toList |
|
添加页面 |
addUI() |
addUI |
addUI.jsp |
添加 |
add() |
toList |
|
修改页面 |
editUI() |
editUI |
editUI.jsp |
修改 |
edit() |
toList |
|
toList的配置为:type="redirectAction" actionName=“xxAction_list”
<result name="toList" type="redirectAction">role_list</result>
===================================================================
请求数量 地址栏
转发 1 不变在一个功能之间的来回跳转
重定向 2 变化在多个功能之间的跳转
role_* ---> {1}代表第一个方法
*号代表
role_list list
role_addUI addUI
role_delete delete
3,实现功能:
1,写Action类,写Action中的方法,确定Service中的方法。
先完成列表和删除功能
1 @Controller 2 @Scope("prototype") 3 public class RoleAction extends ActionSupport{ 4 //在Action里面要用到Service,用注解@Resource,另外在RoleServiceImpl类上要添加注解@Service 5 @Resource 6 private RoleService roleService; 7 8 private Long id; 9 /** 10 * 列表 11 */ 12 public String list() { 13 List<Role> roleList = roleService.findAll(); 14 ActionContext.getContext().put("roleList", roleList);//用ognl里的#号来获取map的东西 15 return "list"; 16 } 17 /** 18 * 删除 19 */ 20 public String delete() { 21 roleService.delete(id); 22 return "toList"; 23 } 24 /** 25 * 添加页面 26 */ 27 public String addUI() { 28 return "addUI"; 29 } 30 /** 31 * 添加 32 */ 33 public String add() { 34 return "toList"; 35 } 36 /** 37 * 修改页面 38 */ 39 public String editUI() { 40 return "editUI"; 41 } 42 /** 43 * 修改 44 */ 45 public String edit() { 46 return "toList"; 47 } 48 //-------------- 49 public Long getId() { 50 return id; 51 } 52 public void setId(Long id) { 53 this.id = id; 54 } 55 }
在struts.xml文件中配置
<!-- 岗位管理 --> <action name="role_*" class="roleAction" method="{1}"> <result name="list">/WEB-INF/jsp/roleAction/list.jsp</result> <result name="addUI">/WEB-INF/jsp/roleAction/addUI.jsp</result> <result name="editUI">/WEB-INF/jsp/roleAction/editUI.jsp</result> <result name="toList" type="redirectAction">role_list</result> </action>
2,写Service方法,确定Dao中的方法。
先完成列表和删除功能
RoleService.java
//接口中只有方法的声明,没有方法的实现 public interface RoleService { //查询所有 List<Role> findAll(); //删除 void delete(Long id); }
RoleServiceImpl.java
//在Action中要调用Service,要写下面两个注解 @Service @Transactional //业务层要管理实务,控制开关事务 public class RoleServiceImpl implements RoleService{ //Service里要调用Dao,得到它通过注入 @Resource private RoleDao roleDao; public List<Role> findAll() { return roleDao.findAll(); } public void delete(Long id) { roleDao.delete(id); } }
3,写Dao方法。
RoleDao.java
public interface RoleDao extends BaseDao<Role>{ }
列表与删除等公共方法都在继承的BaseDao里有
RoleDaoImpl.java
//放到容器里面,以供Service使用Dao的接口与实现类 @Repository public class RoleDaoImpl extends BaseDaoImpl<Role> implements RoleDao{ }
4,写JSP
list.jsp
<%@ taglib prefix="s" uri="/struts-tags" %><!-- 引入struts标签 --> <body> <s:iterator value="#roleList"><!-- 得到里面的集合 --> <s:property value="id"/>, <s:property value="name"/>, <s:property value="description"/>, <s:a action="role_delete?id=%{id}">删除</s:a> </s:iterator> </body>
访问:http://localhost:8080/ItcastOA/role_list.action即可看到列表
实现添加和修改功能
1,写Action类,写Action中的方法,确定Service中的方法。
RoleAction.java
1 @Controller 2 @Scope("prototype") 3 public class RoleAction extends ActionSupport{ 4 //在Action里面要用到Service,用注解@Resource,另外在RoleServiceImpl类上要添加注解@Service 5 @Resource 6 private RoleService roleService; 7 8 private Long id; 9 private String name; 10 private String description; 11 /** 12 * 列表 13 */ 14 public String list() { 15 List<Role> roleList = roleService.findAll(); 16 ActionContext.getContext().put("roleList", roleList);//用ognl里的#号来获取map的东西 17 return "list"; 18 } 19 20 /** 21 * 删除 22 */ 23 public String delete() { 24 roleService.delete(id); 25 return "toList"; 26 } 27 /** 28 * 添加页面 29 */ 30 public String addUI() { 31 return "addUI"; 32 } 33 /** 34 * 添加 35 */ 36 public String add() { 37 //封装到对象中 38 Role role = new Role(); 39 role.setName(name);//名称和说明怎么得到,跟id一样声明字段,setget方法 40 role.setDescription(description); 41 42 //保存到数据库中 43 roleService.save(role); 44 return "toList"; 45 } 46 /** 47 * 修改页面 48 */ 49 public String editUI() { 50 //准备回显的数据 51 Role role =roleService.getById(id); 52 //ActionContext.getContext().getValueStack().push(role);//放到栈顶 53 this.name=role.getName(); 54 this.description =role.getDescription(); 55 return "editUI"; 56 } 57 /** 58 * 修改 59 */ 60 public String edit() { 61 //1.从数据库中获取原对象 62 Role role = roleService.getById(id);//role是根据id来的 63 64 //2.设置要修改的属性 65 role.setName(name); 66 role.setDescription(description); 67 //3.更新到数据库 68 roleService.update(role); 69 70 return "toList"; 71 } 72 //-------------- 73 public Long getId() { 74 return id; 75 } 76 public void setId(Long id) { 77 this.id = id; 78 } 79 public String getName() { 80 return name; 81 } 82 public void setName(String name) { 83 this.name = name; 84 } 85 public String getDescription() { 86 return description; 87 } 88 public void setDescription(String description) { 89 this.description = description; 90 } 91 }
2,写Service方法,确定Dao中的方法。
RoleService.java
//接口中只有方法的声明,没有方法的实现 public interface RoleService { //查询所有 List<Role> findAll(); //删除 void delete(Long id); //保存 void save(Role role); Role getById(Long id); //更新 void update(Role role); }
3,写Dao方法。
RoleDao.java
public interface RoleDao extends BaseDao<Role>{ }
4,写JSP
addUI.jsp
<body> <s:form action="role_add"><!-- 提交的地址 --> <s:textfield name="name"></s:textfield> <s:textarea name="description"></s:textarea> <s:submit value="提交"></s:submit> </s:form> </body>
editUI.jsp
<s:form action="role_edit"><!-- 提交的地址 --> <s:hidden name="id"></s:hidden><!-- 修改要给出隐藏的id --> <s:textfield name="name"></s:textfield> <s:textarea name="description"></s:textarea> <s:submit value="提交"></s:submit> </s:form>
访问:http://localhost:8080/ItcastOA/role_list.action验证即可
系统管理模块_岗位管理_改进_使用modeldroven方案_套用美工写好的页面效果_添加功能与修改功能使用同一个页面
改进_使用ModelDroven方案@Controller@Scope("prototype")publicclassRoleActionextendsActionSupportimplementsModelDriven<Role>{//把ModelDriven放到栈顶,帮我们封装参数//在Action里面要用到Service,用注解@Resource,另外在RoleServiceIm 查看详情
系统管理模块_部门管理_实现基本的增删改查功能
系统管理模块_部门管理1_实现基本的增删改查功能先不考虑上级部门设计实体、表1、设计实体Department.java publicclassDepartment{privateLongid;privateStringname;privateStringdescription;publicLonggetId(){returnid;}publicvoidsetId(Longid){this 查看详情
java建站系统_无聊建站系统模块设计
开发背景实现一个java版的wordpress网站内容管理系统系统与需求分析概括性地说明无聊建站系统主要功能系统功能模块设计系统参数设置栏目设置文章管理友链管理内链管理标签管理聚合内容管理账号管理系统演示:http://jianzhan.w... 查看详情
进销存管理系统搭建流程
...已经没有办法满足企业的发展,所以需要通过使用进销存系统来对商品从进货到销售的流程进行跟踪。你知道如何搭建一个进销存系统吗?下面和小编一起来了解一下相关的知识吧!常见的管理,大致上可分成对事务的管理以及... 查看详情
python之学生信息管理系统(代码片段)
...学生信息 3、修改学生信息4、查找全部学生信息5、退出系统三、整合代码1、完整代码2、完整实现过程实现打印功能菜单、添加学生信息、删除学生信息、修改学生信息、显示学生信息、退出系统,并且需要接收用户的输入... 查看详情
进销存系统_系统介绍&核心模块划分&功能流程介绍
一、学习目标二、进销存系统简介进销存系统是为了对企业生产经营中进货、出货、批发销售、付款等全程进行(从接获订单合同开始、进入物料采购、入库、领用到产品完工入库、交货、回收货款、支付原材料款等)... 查看详情
进销存系统_系统介绍&核心模块划分&功能流程介绍
一、学习目标二、进销存系统简介进销存系统是为了对企业生产经营中进货、出货、批发销售、付款等全程进行(从接获订单合同开始、进入物料采购、入库、领用到产品完工入库、交货、回收货款、支付原材料款等)... 查看详情
论坛模块_版块管理_增删改查&实现上下移动
论坛模块_版块管理1_增删改查设计实体Forum.javapublicclassForum{privateLongid;privateStringname;privateStringDescription;privateintposition;//排序用的位置号publicLonggetId(){returnid;}publicvoidsetId(Longid){this.id=id;}publi 查看详情
计算机信息管理(专科)毕业大作业2012
...具:(学生必填)题目及设计要求:《人事档案管理信息系统》完成一个《人事档案管理信息系统》的数据库设计以及实现相应的管理功能。一、《人事档案管理信息系统》要求实现的管理功能如下:1、《人事档案管理信息系... 查看详情
系统管理模块_部门管理_改进_抽取添加与修改jsp页面中的公共代码_在显示层抽取baseaction_合并service层与dao层
系统管理模块_部门管理_改进1:抽取添加与修改JSP页面中的公共代码commons.jspf<%@pagelanguage="java"import="java.util.*"pageEncoding="UTF-8"%><%@taglibprefix="s"uri="/struts-tags"%><metahttp-equiv="Content-Type"conten 查看详情
[开源]如何使用goapp写你的后台管理系统_golang
简析基于Gin+GORM+Casbin+vue-element-admin实现的权限管理系统。基于Casbin实现RBAC权限管理。前端实现:vue-element-admin。开源地址见文末。 原由前阵子把goapp开源后,不少朋友加我,一些朋友对vue还比较陌生,不知道如何添加自... 查看详情
hr人力资源管理系统8项功能
人力资源管理系统的基础模块之一,属于业务应用层面。可帮助企业建立员工档案、人事异动等其他基础信息,协助HR人员基本事务处理如入职、异动、离职等。同时人事基础为人事管理系统其他模块实现分析、统计、预... 查看详情
学生考勤管理系统的设计与实现
本系统主要针对目前高校学生在线请假以及学生上课出勤管理而设计的信息系统。本系统总体上由三大功能模块:请假系统模块、考勤系统模块、后台管理模块组成。系统涉及到高校三大类用户:学生、任课老师、系统管理员。... 查看详情
基于java+spring+springmvc+mybatis的理论课_考勤,作业,签到管理系统
本理论课管理系统采用目前最流行的ssm框架和eclipse编辑器、mysql数据库设计并实现的。主要包括登录模块、课程信息管理模块、考勤信息管理模块、成绩管理模块、和退出模块等多个模块本系统基于SSM(Spring+SpringMVC+MyBatis)... 查看详情
操作系统_第三章处理器管理_进程
一进程的定义把一个程序在一个数据集上的一次执行称为一个进程(Process). 程序是静态的广本,进程是动态的过程。 进程包括程序和程序处理的数据集,进程实现了程序的功能。可用一个铁路交通管理的例子来比喻程序和进程... 查看详情
javase_《图书馆管理系统》_
...过于繁琐了!所以,我们需求设计一个图书管理系统来方便学生的借书和图书馆管理书籍。2、本系统功能分为读者信息管理模块、图书信息管理模块、图书借阅管理模块、基础信息维护模块和用户管理模块。3、读者信息... 查看详情
智慧能源管理系统_能源管理平台_能源管理系统制作公司
...生活方式进行改变,加快节能降耗的目标。能源管理系统建设,需要考虑能源生产系统、能源利用以及可再生能源等多种问题,我们将物联网和IT云计算等新的技术应用到能源管理系统中, 最终获取能源互联网。... 查看详情
请问都有哪些好的oa系统管理方法?oa系统又都有哪些主要功能?
请问有哪些好的OA系统管理方法?OA系统又有哪些主要功能?管理方法可以参考蓝凌OA系统,由OA系统管理员,为每个不同角色的员工配置管理权限。细致来说,好的OA办公系统功能模块主要由以下几部分构成:1、个人办公功能模... 查看详情