系统管理_部门管理:
|-增删改查
|-页面效果显示
=====================================================================
架子搭建:
1、创建action
2、struts.xml,注意替换的是选中区域中role.
3、页面
4、第3步中的departmentAction,spring中没有,要添加注解。
5、创建service层
6、注入service
注意:注入的是service 而不是serviceImpl。
7、service层添加注解和事务
8、创建dao
=====================================================================
功能实现:
1、action
2、service
3、serviceImpl
4、jsp页面
(1)删除不用的链接
(2)路径替换
(3)列表:修改循环
添加:修改表单
修改:修改与添加页面相似 及 隐藏字段
列表:
添加:
修改:
=====================================================================
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.Department; 11 import cn.itcast.oa.service.DepartmentService; 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 DepartmentAction extends ActionSupport implements ModelDriven<Department> { 20 21 @Resource 22 private DepartmentService departmentService; 23 24 private Department model = new Department(); 25 26 public Department getModel() { 27 return model; 28 } 29 30 /** 列表 */ 31 public String list() throws Exception { 32 List<Department> departmentList = departmentService.findAll(); 33 ActionContext.getContext().put("departmentList", departmentList); 34 return "list"; 35 } 36 37 /** 删除 */ 38 public String delete() throws Exception { 39 departmentService.delete(model.getId()); 40 return "toList"; 41 } 42 43 /** 添加 */ 44 public String addUI() throws Exception { 45 return "addUI"; 46 } 47 48 /** 添加页面 */ 49 public String add() throws Exception { 50 //1.新建对象并封装属性,也可用model 51 //2.保存到数据库中 52 departmentService.save(model); 53 return "toList"; 54 } 55 56 /** 修改页面 */ 57 public String editUI() throws Exception { 58 //准备回显的信息 59 Department department = departmentService.getById(model.getId()); 60 ActionContext.getContext().getValueStack().push(department); 61 return "editUI"; 62 } 63 64 /** 修改 */ 65 public String edit() throws Exception { 66 //1.从数据库中取出原对象 67 Department department = departmentService.getById(model.getId()); 68 69 //2.设置修改的属性 70 department.setName(model.getName()); 71 department.setDescription(model.getDescription()); 72 73 //3.更新到数据库 74 departmentService.update(department); 75 return "toList"; 76 } 77 }
1 <%@ page language="java" import="java.util.*" pageEncoding="utf-8"%> 2 <%@ taglib prefix="s" uri="/struts-tags"%><html> 3 <head> 4 <title>部门列表</title> 5 <meta http-equiv="Content-Type" content="text/html; charset=utf-8" /> 6 <script language="javascript" src="${pageContext.request.contextPath}/script/jquery.js"></script> 7 <script language="javascript" src="${pageContext.request.contextPath}/script/pageCommon.js" charset="utf-8"></script> 8 <script language="javascript" src="${pageContext.request.contextPath}/script/PageUtils.js" charset="utf-8"></script> 9 <link type="text/css" rel="stylesheet" href="${pageContext.request.contextPath}/style/blue/pageCommon.css" /> 10 <script type="text/javascript"> 11 </script> 12 </head> 13 <body> 14 15 <div id="Title_bar"> 16 <div id="Title_bar_Head"> 17 <div id="Title_Head"></div> 18 <div id="Title"><!--页面标题--> 19 <img border="0" width="13" height="13" src="${pageContext.request.contextPath}/style/images/title_arrow.gif"/> 部门管理 20 </div> 21 <div id="Title_End"></div> 22 </div> 23 </div> 24 25 <div id="MainArea"> 26 <table cellspacing="0" cellpadding="0" class="TableStyle"> 27 28 <!-- 表头--> 29 <thead> 30 <tr align=center valign=middle id=TableTitle> 31 <td width="150px">部门名称</td> 32 <td width="150px">上级部门名称</td> 33 <td width="200px">职能说明</td> 34 <td>相关操作</td> 35 </tr> 36 </thead> 37 38 <!--显示数据列表--> 39 <tbody id="TableData" class="dataContainer" datakey="departmentList"> 40 <s:iterator value="#departmentList"> 41 <tr class="TableDetail1 template"> 42 <td>${name} </td> 43 <td>${parent.name} </td> 44 <td>${description} </td> 45 <td><s:a action="departmentAction_delete?id=%{id}" οnclick="return window.confirm('这将删除所有的下级部门,您确定要删除吗?')" >删除</s:a> 46 <s:a action="departmentAction_editUI?id=%{id}">修改</s:a> 47 </td> 48 </tr> 49 </s:iterator> 50 </tbody> 51 </table> 52 53 <!-- 其他功能超链接 --> 54 <div id="TableTail"> 55 <div id="TableTail_inside"> 56 <s:a action="departmentAction_addUI?id=%{id}"><img src="${pageContext.request.contextPath}/style/images/createNew.png" /></s:a> 57 </div> 58 </div> 59 </div> 60 61 <!--说明--> 62 <div id="Description"> 63 说明:<br /> 64 1,列表页面只显示一层的(同级的)部门数据,默认显示最顶级的部门列表。<br /> 65 2,点击部门名称,可以查看此部门相应的下级部门列表。<br /> 66 3,删除部门时,同时删除此部门的所有下级部门。 67 </div> 68 69 </body> 70 </html>
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 <link type="text/css" rel="stylesheet" href="${pageContext.request.contextPath}/style/blue/pageCommon.css" /> 11 </head> 12 <body> 13 14 <!-- 标题显示 --> 15 <div id="Title_bar"> 16 <div id="Title_bar_Head"> 17 <div id="Title_Head"></div> 18 <div id="Title"><!--页面标题--> 19 <img border="0" width="13" height="13" src="${pageContext.request.contextPath}/style/images/title_arrow.gif"/> 部门信息 20 </div> 21 <div id="Title_End"></div> 22 </div> 23 </div> 24 25 <!--显示表单内容--> 26 <div id=MainArea> 27 <s:form action="departmentAction_add"> 28 <div class="ItemBlock_Title1"><!-- 信息说明<DIV CLASS="ItemBlock_Title1"> 29 <IMG BORDER="0" WIDTH="4" HEIGHT="7" SRC="${pageContext.request.contextPath}/style/blue/images/item_point.gif" /> 部门信息 </DIV> --> 30 </div> 31 32 <!-- 表单内容显示 --> 33 <div class="ItemBlockBorder"> 34 <div class="ItemBlock"> 35 <table cellpadding="0" cellspacing="0" class="mainForm"> 36 <tr><td width="100">上级部门</td> 37 <td><select name="parentId" class="SelectStyle"> 38 <option value="0" selected="selected">请选择部门</option> 39 <option value="7">┠总经理室</option> 40 <option value="1">┠市场部</option> 41 <option value="2"> ┠咨询部</option> 42 <option value="3"> ┠招生部</option> 43 <option value="4">┠教学部</option> 44 <option value="5">┠后勤部</option> 45 </select> 46 </td> 47 </tr> 48 <tr><td>部门名称</td> 49 <td><s:textfield type="text" name="name" cssClass="InputStyle"/> *</td> 50 </tr> 51 <tr><td>职能说明</td> 52 <td><s:textarea name="description" cssClass="TextareaStyle"></s:textarea></td> 53 </tr> 54 </table> 55 </div> 56 </div> 57 58 <!-- 表单操作 --> 59 <div id="InputDetailBar"> 60 <input type="image" src="${pageContext.request.contextPath}/style/images/save.png"/> 61 <a href="javascript:history.go(-1);"><img src="${pageContext.request.contextPath}/style/images/goBack.png"/></a> 62 </div> 63 </s:form> 64 </div> 65 66 <div class="Description"> 67 说明:<br /> 68 1,上级部门的列表是有层次结构的(树形)。<br/> 69 2,如果是修改:上级部门列表中不能显示当前修改的部门及其子孙部门。因为不能选择自已或自已的子部门作为上级部门。<br /> 70 </div> 71 72 </body> 73 </html>
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 <link type="text/css" rel="stylesheet" href="${pageContext.request.contextPath}/style/blue/pageCommon.css" /> 11 </head> 12 <body> 13 14 <!-- 标题显示 --> 15 <div id="Title_bar"> 16 <div id="Title_bar_Head"> 17 <div id="Title_Head"></div> 18 <div id="Title"><!--页面标题--> 19 <img border="0" width="13" height="13" src="${pageContext.request.contextPath}/style/images/title_arrow.gif"/> 部门信息 20 </div> 21 <div id="Title_End"></div> 22 </div> 23 </div> 24 25 <!--显示表单内容--> 26 <div id=MainArea> 27 <s:form action="departmentAction_edit"> 28 <s:hidden name="id"></s:hidden> 29 <div class="ItemBlock_Title1"><!-- 信息说明<DIV CLASS="ItemBlock_Title1"> 30 <IMG BORDER="0" WIDTH="4" HEIGHT="7" SRC="${pageContext.request.contextPath}/style/blue/images/item_point.gif" /> 部门信息 </DIV> --> 31 </div> 32 33 <!-- 表单内容显示 --> 34 <div class="ItemBlockBorder"> 35 <div class="ItemBlock"> 36 <table cellpadding="0" cellspacing="0" class="mainForm"> 37 <tr><td width="100">上级部门</td> 38 <td><select name="parentId" class="SelectStyle"> 39 <option value="0" selected="selected">请选择部门</option> 40 <option value="7">┠总经理室</option> 41 <option value="1">┠市场部</option> 42 <option value="2"> ┠咨询部</option> 43 <option value="3"> ┠招生部</option> 44 <option value="4">┠教学部</option> 45 <option value="5">┠后勤部</option> 46 </select> 47 </td> 48 </tr> 49 <tr><td>部门名称</td> 50 <td><s:textfield type="text" name="name" cssClass="InputStyle"/> *</td> 51 </tr> 52 <tr><td>职能说明</td> 53 <td><s:textarea name="description" cssClass="TextareaStyle"></s:textarea></td> 54 </tr> 55 </table> 56 </div> 57 </div> 58 59 <!-- 表单操作 --> 60 <div id="InputDetailBar"> 61 <input type="image" src="${pageContext.request.contextPath}/style/images/save.png"/> 62 <a href="javascript:history.go(-1);"><img src="${pageContext.request.contextPath}/style/images/goBack.png"/></a> 63 </div> 64 </s:form> 65 </div> 66 67 <div class="Description"> 68 说明:<br /> 69 1,上级部门的列表是有层次结构的(树形)。<br/> 70 2,如果是修改:上级部门列表中不能显示当前修改的部门及其子孙部门。因为不能选择自已或自已的子部门作为上级部门。<br /> 71 </div> 72 73 </body> 74 </html>
1 package cn.itcast.oa.service; 2 3 import java.util.List; 4 5 import cn.itcast.oa.domain.Department; 6 7 public interface DepartmentService { 8 9 Department getById(Long id); 10 11 void delete(Long id); 12 13 List<Department> findAll(); 14 15 void save(Department model); 16 17 void update(Department department); 18 19 }
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.DepartmentDao; 11 import cn.itcast.oa.domain.Department; 12 import cn.itcast.oa.service.DepartmentService; 13 14 @Service 15 @Transactional 16 public class DepartmentServiceImpl implements DepartmentService{ 17 18 @Resource 19 private DepartmentDao departmentDao; 20 21 public Department getById(Long id) { 22 return departmentDao.getById(id); 23 } 24 25 public void delete(Long id) { 26 departmentDao.delete(id); 27 } 28 29 public List<Department> findAll() { 30 return departmentDao.findAll(); 31 } 32 33 public void save(Department department) { 34 departmentDao.save(department); 35 } 36 37 public void update(Department department) { 38 departmentDao.update(department); 39 } 40 }
1 package cn.itcast.oa.dao; 2 3 import cn.itcast.oa.base.BaseDao; 4 import cn.itcast.oa.domain.Department; 5 6 public interface DepartmentDao extends BaseDao<Department>{ 7 8 }
1 package cn.itcast.oa.dao.impl; 2 3 import org.springframework.stereotype.Repository; 4 5 import cn.itcast.oa.base.BaseDaoImpl; 6 import cn.itcast.oa.dao.DepartmentDao; 7 import cn.itcast.oa.domain.Department; 8 9 @Repository 10 public class DepartmentDaoImpl extends BaseDaoImpl<Department> implements DepartmentDao{ 11 12 }
系统管理_部门管理1 END!!!