20170318_系统管理_岗位管理_增删改查2
岗位管理_实现显示、删除、添加、修改
|-分析通用增删改查功能及命名规范
|-岗位管理----显示、删除
|-第一步:岗位管理空架action的搭建
|-第一段:action准备 和 struts.xml中配置 和 空jsp页面
|-第二段:service 准备
|-第二步:填写action中的方法内容 和 jsp页面内容 并完成测试
ps: 链接使用<s:a>自定义标签
ps:对象栈
|-岗位管理----添加、修改
步骤:action(得到参数封装成对象,并保存到数据库中)-->RoleService-->RoleServiceImpl(调用roleDao.save(role);)
=====================================================================
1 /** 列表 */ 2 public String list() throws Exception { 3 return "list"; 4 } 5 6 /** 删除 */ 7 public String delete() throws Exception { 8 return "toList"; 9 } 10 11 /** 添加页面 */ 12 public String addUI() throws Exception { 13 return "addUI"; 14 } 15 16 /** 添加 */ 17 public String add() throws Exception { 18 19 return "toList"; 20 } 21 22 /** 修改页面 */ 23 public String editUI() throws Exception { 24 25 return "editUI"; 26 } 27 28 /** 修改 */ 29 public String edit() throws Exception { 30 return "toList"; 31 }
=====================================================================
岗位管理----显示、删除
第一步:岗位管理空架搭建
第一段:action准备
RoleAction中的方法 、 struts.xml中配置<!-- 岗位管理 --> 、jsp页面(空)
注意:继承ActionSupport,添加@Controller、 @Scope("prototype")注解
第二段:service 准备
空架三层action、service、dao层搭建完成
第二步:填写action中的方法内容 和 jsp页面内容
action做一半:准备数据
页面做一半:显示数据
加在一起等于结果。
添加删除方法的内容:
ps:值栈中有:对象栈 + Map
list.jsp页面:
改进显示:
添加删除提醒:
数据库添加信息:
测试结果:
=====================================================================
岗位管理----添加、修改
添加:jsp页面-->action(得到参数封装成对象,并保存到数据库中)-->RoleService-->RoleServiceImpl(调用roleDao.save(role);)
重启服务器:
测试:
修改:
使用this.role = role.getName();和this.discription = role.getDescription();将这两个属性放到对象栈的栈顶,就可以自动回显。
测试修改:
系统管理_岗位管理的增删改查 END!!!
=====================================================================
岗位管理功能改:
栈顶放一个对象,取对象就是官方提供的一种方式即:ModelDriven
![](https://images.cnblogs.com/OutliningIndicators/ContractedBlock.gif)
1 package cn.itcast.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.itcast.oa.domain.Role; 11 import cn.itcast.oa.service.RoleService; 12 13 import com.opensymphony.xwork2.ActionContext; 14 import com.opensymphony.xwork2.ActionSupport; 15 import com.opensymphony.xwork2.ModelDriven; 16 17 @Controller 18 @Scope("prototype") 19 public class RoleAction extends ActionSupport implements ModelDriven<Role> { 20 21 @Resource 22 private RoleService roleService; 23 24 // private Long id; 25 // private String name; 26 // private String description; 27 28 private Role model = new Role(); 29 30 public Role getModel() { 31 return model; 32 } 33 34 /** 列表 */ 35 public String list() throws Exception { 36 List<Role> roleList = roleService.findAll(); 37 ActionContext.getContext().put("roleList", roleList); //放到map中 38 return "list"; 39 } 40 41 /** 删除 */ 42 public String delete() throws Exception { 43 //roleService.delete(id); 44 45 //-------------------------------------- 46 47 roleService.delete(model.getId()); 48 return "toList"; 49 } 50 51 /** 添加页面 */ 52 public String addUI() throws Exception { 53 return "addUI"; 54 } 55 56 /** 添加 */ 57 public String add() throws Exception { 58 // 得到参数,封装成对象,当使用实体作为Model时,也可以直接使用model 59 // Role role = new Role(); 60 // role.setName(name); 61 // role.setDescription(description); 62 // roleService.save(role); 63 64 // 保存到数据库中 65 // roleService.save(role); 66 67 //------------------------------------------ 68 69 roleService.save(model); 70 return "toList"; 71 } 72 73 /** 修改页面 */ 74 public String editUI() throws Exception { 75 // Role role = roleService.getById(id); 76 // this.name = role.getName(); 77 // this.description = role.getDescription(); 78 79 // ---------------------------------------- 80 81 Role role = roleService.getById(model.getId()); 82 ActionContext.getContext().getValueStack().push(role); // 放到栈顶 83 return "editUI"; 84 } 85 86 /** 修改 */ 87 public String edit() throws Exception { 88 // 从数据库中取出原对象 89 // Role role = roleService.getById(id); 90 91 // // 设置要修改的属性 92 // role.setName(name); 93 // role.setDescription(description); 94 95 // 更新到数据库 96 // roleService.update(role); 97 98 // -------------------------------- 99 100 // 从数据库中取出原对象 101 Role role = roleService.getById(model.getId()); 102 role.setName(model.getName()); 103 role.setDescription(model.getDescription()); 104 105 // 更新到数据库 106 roleService.update(role); 107 return "toList"; 108 } 109 110 // --------------------------------- 111 112 }
![](https://images.cnblogs.com/OutliningIndicators/ContractedBlock.gif)
1 package cn.itcast.oa.service; 2 3 import java.util.List; 4 5 import cn.itcast.oa.domain.Role; 6 7 8 9 public interface RoleService { 10 11 /** 12 * 查询所有岗位 13 * 14 * @return 15 */ 16 List<Role> findAll(); 17 18 /** 19 * 删除一个岗位信息 20 * 21 * @param id 22 */ 23 void delete(Long id); 24 25 /** 26 * 添加一个岗位信息 27 * 28 * @param role 29 */ 30 void save(Role role); 31 32 33 /** 34 * 得到一个岗位信息 35 * 36 * @param role 37 */ 38 Role getById(Long id); 39 40 41 /** 42 * 修改一个岗位信息 43 * 44 * @param role 45 */ 46 void update(Role role); 47 48 }
![](https://images.cnblogs.com/OutliningIndicators/ContractedBlock.gif)
1 package cn.itcast.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.itcast.oa.dao.RoleDao; 11 import cn.itcast.oa.domain.Role; 12 import cn.itcast.oa.service.RoleService; 13 14 @Service 15 @Transactional 16 public class RoleServiceImpl implements RoleService { 17 18 @Resource 19 private RoleDao roleDao; 20 21 public List<Role> findAll() { 22 return roleDao.findAll(); 23 } 24 25 public void delete(Long id) { 26 roleDao.delete(id); 27 } 28 29 public void save(Role role) { 30 roleDao.save(role); 31 32 } 33 34 public Role getById(Long id) { 35 return roleDao.getById(id); 36 } 37 38 public void update(Role role) { 39 roleDao.update(role); 40 41 } 42 43 44 }
![](https://images.cnblogs.com/OutliningIndicators/ContractedBlock.gif)
1 <%@ page language="java" import="java.util.*" pageEncoding="utf-8"%> 2 <%@ taglib prefix="s" uri="/struts-tags"%> 3 <!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN"> 4 <html> 5 <head> 6 <title>My JSP 'index.jsp' starting page</title> 7 </head> 8 9 <body> 10 <%-- 11 <s:iterator value="#roleList"> 12 <s:property value="id"/>, 13 <s:property value="name"/>, 14 <s:property value="description" />, 15 <a href="roleAction_delete.action?id=<s:property value='id'/>" onclick="return confirm('确定要删除吗?')">删除</a><br> 16 </s:iterator> 17 --%> 18 19 <s:iterator value="#roleList"> 20 ${id}, 21 ${name}, 22 ${description}, 23 24 <%-- 25 <a href="roleAction_delete.action?id=${id}" onclick="return confirm('确定要删除吗?')">删除</a> 26 --%> 27 28 <%-- 29 <s:a action="roleAction_delete"> 30 <s:param name="id" value="%{id}"/>删除 31 </s:a> 32 --%> 33 34 <s:a action="roleAction_delete?id=%{id}" onclick="return confirm('确定要删除吗?')">删除</s:a> 35 <s:a action="roleAction_editUI?id=%{id}">修改</s:a><br> 36 </s:iterator> 37 38 <s:a action="roleAction_addUI">添加</s:a> 39 40 <br> 41 </body> 42 </html>
![](https://images.cnblogs.com/OutliningIndicators/ContractedBlock.gif)
1 <%@ page language="java" import="java.util.*" pageEncoding="utf-8"%> 2 <%@ taglib prefix="s" uri="/struts-tags" %> 3 <!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN"> 4 <html> 5 <head> 6 <title>My JSP 'index.jsp' starting page</title> 7 </head> 8 9 <body> 10 11 <s:form action="roleAction_add"> 12 <s:textfield name="name" label="名称"/> 13 <s:textarea name="description" label="说明"/> 14 <s:submit value="提交"/> 15 </s:form> 16 17 </body> 18 </html>
![](https://images.cnblogs.com/OutliningIndicators/ContractedBlock.gif)
1 <%@ page language="java" import="java.util.*" pageEncoding="utf-8"%> 2 <%@ taglib prefix="s" uri="/struts-tags" %> 3 <!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN"> 4 <html> 5 <head> 6 <title>My JSP 'index.jsp' starting page</title> 7 </head> 8 9 <body> 10 11 <s:form action="roleAction_edit"> 12 <s:hidden name="id"/> 13 <s:textfield name="name" label="名称"/> 14 <s:textarea name="description" label="说明"/> 15 <s:submit value="提交"/> 16 </s:form> 17 18 </body> 19 </html>
=====================================================================
岗位管理效果修改:
显示效果:
=====================================================================
新建页面效果:
=====================================================================
修改:与addUI.jsp共用一个代码,只是表单提交数据的位置和 <s:hidden name="id"/>
=====================================================================
![](https://images.cnblogs.com/OutliningIndicators/ContractedBlock.gif)
1 <%@ page language="java" import="java.util.*" pageEncoding="utf-8"%> 2 <%@ taglib prefix="s" uri="/struts-tags"%> 3 <html> 4 <head> 5 <title>岗位列表</title> 6 <meta http-equiv="Content-Type" content="text/html; charset=utf-8" /> 7 <script language="javascript" src="${pageContext.request.contextPath}/script/jquery.js"></script> 8 <script language="javascript" src="${pageContext.request.contextPath}/script/pageCommon.js" charset="utf-8"></script> 9 <script language="javascript" src="${pageContext.request.contextPath}/script/PageUtils.js" charset="utf-8"></script> 10 <%-- <script language="javascript" src="${pageContext.request.contextPath}/script/DemoData.js" charset="utf-8"></script> 11 <script language="javascript" src="${pageContext.request.contextPath}/script/DataShowManager.js" charset="utf-8"></script> --%> 12 <link type="text/css" rel="stylesheet" href="${pageContext.request.contextPath}/style/blue/pageCommon.css" /> 13 <script type="text/javascript"> 14 15 </script> 16 </head> 17 <body> 18 19 <div id="Title_bar"> 20 <div id="Title_bar_Head"> 21 <div id="Title_Head"></div> 22 <div id="Title"> 23 <!--页面标题--> 24 <img border="0" width="13" height="13" src="${pageContext.request.contextPath}/style/images/title_arrow.gif" /> 岗位管理 25 </div> 26 <div id="Title_End"></div> 27 </div> 28 </div> 29 30 <div id="MainArea"> 31 <table cellspacing="0" cellpadding="0" class="TableStyle"> 32 33 <!-- 表头--> 34 <thead> 35 <tr align="CENTER" valign="MIDDLE" id="TableTitle"> 36 <td width="200px">岗位名称</td> 37 <td width="300px">岗位说明</td> 38 <td>相关操作</td> 39 </tr> 40 </thead> 41 42 <!--显示数据列表--> 43 <tbody id="TableData" class="dataContainer" datakey="roleList"> 44 45 <s:iterator value="#roleList"> 46 <tr class="TableDetail1 template"> 47 <td>${name} </td> 48 <td>${description} </td> 49 <td><s:a action="roleAction_delete?id=%{id}" onclick="return delConfirm()">删除</s:a> 50 <s:a action="roleAction_editUI?id=%{id}">修改</s:a> 51 <a href="setPrivilegeUI.html">设置权限</a> 52 </td> 53 </tr> 54 </s:iterator> 55 56 </tbody> 57 58 </tbody> 59 </table> 60 61 <!-- 其他功能超链接 --> 62 <div id="TableTail"> 63 <div id="TableTail_inside"> 64 <s:a action="roleAction_addUI"> 65 <img src="${pageContext.request.contextPath}/style/images/createNew.png" /> 66 </s:a> 67 </div> 68 </div> 69 </div> 70 </body> 71 </html>
![](https://images.cnblogs.com/OutliningIndicators/ContractedBlock.gif)
1 <%@ page language="java" import="java.util.*" pageEncoding="utf-8"%> 2 <%@ taglib prefix="s" uri="/struts-tags" %> 3 <html> 4 <head> 5 <title>岗位设置</title> 6 <meta http-equiv="Content-Type" content="text/html; charset=utf-8" /> 7 <script language="javascript" src="${pageContext.request.contextPath}/script/jquery.js"></script> 8 <script language="javascript" src="${pageContext.request.contextPath}/script/pageCommon.js" charset="utf-8"></script> 9 <script language="javascript" src="${pageContext.request.contextPath}/script/PageUtils.js" charset="utf-8"></script> 10 <%-- <script language="javascript" src="${pageContext.request.contextPath}/script/DemoData.js" charset="utf-8"></script> 11 <script language="javascript" src="${pageContext.request.contextPath}/script/DataShowManager.js" charset="utf-8"></script> --%> 12 <link type="text/css" rel="stylesheet" href="${pageContext.request.contextPath}/style/blue/pageCommon.css" /> 13 <script type="text/javascript"> 14 </script> 15 </head> 16 <body> 17 18 <!-- 标题显示 --> 19 <div id="Title_bar"> 20 <div id="Title_bar_Head"> 21 <div id="Title_Head"></div> 22 <div id="Title"><!--页面标题--> 23 <img border="0" width="13" height="13" src="${pageContext.request.contextPath}/style/images/title_arrow.gif"/> 岗位设置 24 </div> 25 <div id="Title_End"></div> 26 </div> 27 </div> 28 29 <!--显示表单内容--> 30 <div id="MainArea"> 31 <s:form action="roleAction_add"> 32 <div class="ItemBlock_Title1"><!-- 信息说明<DIV CLASS="ItemBlock_Title1"> 33 <IMG BORDER="0" WIDTH="4" HEIGHT="7" SRC="${pageContext.request.contextPath}/style/blue/images/item_point.gif" /> 岗位信息 </DIV> --> 34 </div> 35 36 <!-- 表单内容显示 --> 37 <div class="ItemBlockBorder"> 38 <div class="ItemBlock"> 39 <table cellpadding="0" cellspacing="0" class="mainForm"> 40 <tr> 41 <td width="100">岗位名称</td> 42 <td><s:textfield type="text" name="name" cssClass="InputStyle" /> *</td> 43 </tr> 44 <tr> 45 <td>岗位说明</td> 46 <td><s:textarea name="description" cssClass="TextareaStyle"></s:textarea></td> 47 </tr> 48 </table> 49 </div> 50 </div> 51 52 <!-- 表单操作 --> 53 <div id="InputDetailBar"> 54 <input type="image" src="${pageContext.request.contextPath}/style/images/save.png"/> 55 <a href="javascript:history.go(-1);"><img src="${pageContext.request.contextPath}/style/images/goBack.png"/></a> 56 </div> 57 </s:form> 58 </div> 59 60 </body> 61 </html>
![](https://images.cnblogs.com/OutliningIndicators/ContractedBlock.gif)
1 <%@ page language="java" import="java.util.*" pageEncoding="utf-8"%> 2 <%@ taglib prefix="s" uri="/struts-tags" %> 3 <html> 4 <head> 5 <title>岗位设置</title> 6 <meta http-equiv="Content-Type" content="text/html; charset=utf-8" /> 7 <script language="javascript" src="${pageContext.request.contextPath}/script/jquery.js"></script> 8 <script language="javascript" src="${pageContext.request.contextPath}/script/pageCommon.js" charset="utf-8"></script> 9 <script language="javascript" src="${pageContext.request.contextPath}/script/PageUtils.js" charset="utf-8"></script> 10 <%-- <script language="javascript" src="${pageContext.request.contextPath}/script/DemoData.js" charset="utf-8"></script> 11 <script language="javascript" src="${pageContext.request.contextPath}/script/DataShowManager.js" charset="utf-8"></script> --%> 12 <link type="text/css" rel="stylesheet" href="${pageContext.request.contextPath}/style/blue/pageCommon.css" /> 13 <script type="text/javascript"> 14 </script> 15 </head> 16 <body> 17 18 <!-- 标题显示 --> 19 <div id="Title_bar"> 20 <div id="Title_bar_Head"> 21 <div id="Title_Head"></div> 22 <div id="Title"><!--页面标题--> 23 <img border="0" width="13" height="13" src="${pageContext.request.contextPath}/style/images/title_arrow.gif"/> 岗位设置 24 </div> 25 <div id="Title_End"></div> 26 </div> 27 </div> 28 29 <!--显示表单内容--> 30 <div id="MainArea"> 31 <s:form action="roleAction_edit"> 32 <s:hidden name="id"/> 33 <div class="ItemBlock_Title1"><!-- 信息说明<DIV CLASS="ItemBlock_Title1"> 34 <IMG BORDER="0" WIDTH="4" HEIGHT="7" SRC="${pageContext.request.contextPath}/style/blue/images/item_point.gif" /> 岗位信息 </DIV> --> 35 </div> 36 37 <!-- 表单内容显示 --> 38 <div class="ItemBlockBorder"> 39 <div class="ItemBlock"> 40 <table cellpadding="0" cellspacing="0" class="mainForm"> 41 <tr> 42 <td width="100">岗位名称</td> 43 <td><s:textfield type="text" name="name" cssClass="InputStyle" /> *</td> 44 </tr> 45 <tr> 46 <td>岗位说明</td> 47 <td><s:textarea name="description" cssClass="TextareaStyle"></s:textarea></td> 48 </tr> 49 </table> 50 </div> 51 </div> 52 53 <!-- 表单操作 --> 54 <div id="InputDetailBar"> 55 <input type="image" src="${pageContext.request.contextPath}/style/images/save.png"/> 56 <a href="javascript:history.go(-1);"><img src="${pageContext.request.contextPath}/style/images/goBack.png"/></a> 57 </div> 58 </s:form> 59 </div> 60 61 </body> 62 </html>
系统管理_岗位管理 END!!!