OA学习笔记-008-岗位管理Action层实现
2016-02-28 22:47
429 查看
一、分析
1,设计实体/表
设计实体 --> JavaBean --> hbm.xml --> 建表
2,分析有几个功能,对应几个请求。
3,实现功能:
1,写Action类,写Action中的方法,确定Service中的方法。
2,写Service方法,确定Dao中的方法。
3,写Dao方法。
4,写JSP
============================
请求数量 地址栏
转发 1 不变
重定向 2 变化
增删改查共4个功能,需要6个请求。
所以需要相应的6个Action方法,每个Action方法处理一种请求。
作用 方法名 返回值 对应的页面
----------------------------------------------------
列表 list() list list.jsp
删除 delete() toList
添加页面 addUI() addUI addUI.jsp
添加 add() toList
修改页面 editUI() editUI editUI.jsp
修改 edit() toList
<result name="toList" type="redirectAction">role_list</result>
role_* ---> {1}
role_list list
role_addUI addUI
role_delete delete
二、代码
1.Action层
2.Service层
3.Dao层
4.View层
(1)saveUI.jsp
(2)list.jsp
1,设计实体/表
设计实体 --> JavaBean --> hbm.xml --> 建表
2,分析有几个功能,对应几个请求。
3,实现功能:
1,写Action类,写Action中的方法,确定Service中的方法。
2,写Service方法,确定Dao中的方法。
3,写Dao方法。
4,写JSP
============================
请求数量 地址栏
转发 1 不变
重定向 2 变化
增删改查共4个功能,需要6个请求。
所以需要相应的6个Action方法,每个Action方法处理一种请求。
作用 方法名 返回值 对应的页面
----------------------------------------------------
列表 list() list list.jsp
删除 delete() toList
添加页面 addUI() addUI addUI.jsp
添加 add() toList
修改页面 editUI() editUI editUI.jsp
修改 edit() toList
<result name="toList" type="redirectAction">role_list</result>
role_* ---> {1}
role_list list
role_addUI addUI
role_delete delete
二、代码
1.Action层
package cn.itcast.oa.view.action; import java.util.List; import javax.annotation.Resource; import org.springframework.context.annotation.Scope; import org.springframework.stereotype.Controller; import cn.itcast.oa.domain.Role; import cn.itcast.oa.service.RoleService; import com.opensymphony.xwork2.ActionContext; import com.opensymphony.xwork2.ActionSupport; import com.opensymphony.xwork2.ModelDriven; @Controller @Scope("prototype") public class RoleAction extends ActionSupport implements ModelDriven<Role> { private static final long serialVersionUID = 1L; @Resource private RoleService roleService; // private Long id; // private String name; // private String description; private Role model = new Role(); public Role getModel() { return model; } /** 列表 */ public String list() throws Exception { List<Role> roleList = roleService.findAll(); ActionContext.getContext().put("roleList", roleList); return "list"; } /** 删除 */ public String delete() throws Exception { roleService.delete(model.getId()); return "toList"; } /** 添加页面 */ public String addUI() throws Exception { return "saveUI"; } /** 添加 */ public String add() throws Exception { // // 封装到对象中 // Role role = new Role(); // role.setName(model.getName()); // role.setDescription(model.getDescription()); // // // 保存到数据库 // roleService.save(role); roleService.save(model); return "toList"; } /** 修改页面 */ public String editUI() throws Exception { // 准备回显的数据 Role role = roleService.getById(model.getId()); ActionContext.getContext().getValueStack().push(role); return "saveUI"; } /** 修改 */ public String edit() throws Exception { // 1,从数据库中获取原对象 Role role = roleService.getById(model.getId()); // 2,设置要修改的属性 role.setName(model.getName()); role.setDescription(model.getDescription()); // 3,更新到数据库 roleService.update(role); return "toList"; } // --- // public Long getId() { // return id; // } // // public void setId(Long id) { // this.id = id; // } // // public String getName() { // return name; // } // // public void setName(String name) { // this.name = name; // } // // public String getDescription() { // return description; // } // // public void setDescription(String description) { // this.description = description; // } }
2.Service层
package cn.itcast.oa.service.impl; import java.util.List; import javax.annotation.Resource; import org.springframework.stereotype.Service; import org.springframework.transaction.annotation.Transactional; import cn.itcast.oa.dao.RoleDao; import cn.itcast.oa.domain.Role; import cn.itcast.oa.service.RoleService; @Service @Transactional public class RoleServiceImpl implements RoleService { @Resource private RoleDao roleDao; public Role getById(Long id) { return roleDao.getById(id); } public void delete(Long id) { roleDao.delete(id); } public void save(Role role) { roleDao.save(role); } public void update(Role role) { roleDao.update(role); } public List<Role> findAll() { return roleDao.findAll(); } }
3.Dao层
@Repository //这里写了@Repository,则父类BaseDaoImpl的sessionFactory可以注入 public class RoleDaoImpl extends BaseDaoImpl<Role> implements RoleDao { }
4.View层
(1)saveUI.jsp
<%@ page language="java" import="java.util.*" pageEncoding="utf-8"%> <%@ taglib prefix="s" uri="/struts-tags" %> <html> <head> <title>岗位设置</title> <meta http-equiv="Content-Type" content="text/html; charset=utf-8" /> <script language="javascript" src="${pageContext.request.contextPath}/script/jquery.js"></script> <script language="javascript" src="${pageContext.request.contextPath}/script/pageCommon.js" charset="utf-8"></script> <script language="javascript" src="${pageContext.request.contextPath}/script/PageUtils.js" charset="utf-8"></script> <link type="text/css" rel="stylesheet" href="${pageContext.request.contextPath}/style/blue/pageCommon.css" /> <script type="text/javascript"> </script> </head> <body> <!-- 标题显示 --> <div id="Title_bar"> <div id="Title_bar_Head"> <div id="Title_Head"></div> <div id="Title"><!--页面标题--> <img border="0" width="13" height="13" src="${pageContext.request.contextPath}/style/images/title_arrow.gif"/> 岗位设置 </div> <div id="Title_End"></div> </div> </div> <!--显示表单内容--> <div id="MainArea"> <s:form action="role_%{ id == null ? 'add' : 'edit' }"> <s:hidden name="id"></s:hidden> <div class="ItemBlock_Title1"><!-- 信息说明<DIV CLASS="ItemBlock_Title1"> <IMG BORDER="0" WIDTH="4" HEIGHT="7" SRC="${pageContext.request.contextPath}/style/blue/images/item_point.gif" /> 岗位信息 </DIV> --> </div> <!-- 表单内容显示 --> <div class="ItemBlockBorder"> <div class="ItemBlock"> <table cellpadding="0" cellspacing="0" class="mainForm"> <tr> <td width="100">岗位名称</td> <td><s:textfield name="name" cssClass="InputStyle" /> *</td> </tr> <tr> <td>岗位说明</td> <td><s:textarea name="description" cssClass="TextareaStyle"></s:textarea></td> </tr> </table> </div> </div> <!-- 表单操作 --> <div id="InputDetailBar"> <input type="image" src="${pageContext.request.contextPath}/style/images/save.png"/> <a href="javascript:history.go(-1);"><img src="${pageContext.request.contextPath}/style/images/goBack.png"/></a> </div> </s:form> </div> </body> </html>
(2)list.jsp
<%@ page language="java" import="java.util.*" pageEncoding="utf-8"%> <%@ taglib prefix="s" uri="/struts-tags" %> <html> <head> <title>My JSP 'index.jsp' starting page</title> </head> <body> <%-- <s:iterator value="#roleList"> <s:property value="id"/>, <s:property value="%{name}"/>, <s:property value="description"/>, <s:a action="role_delete?id=%{id}" onclick="return confirm('确定要删除吗?')">删除</s:a>, <s:a action="role_editUI?id=%{id}">修改</s:a> <br/> </s:iterator> --%> <s:iterator value="#roleList"> ${id}, ${name}, ${description}, <s:a action="role_delete?id=%{id}" onclick="return confirm('确定要删除吗?')">删除</s:a>, <s:a action="role_editUI?id=%{id}">修改</s:a> <br/> </s:iterator> <br/> <s:a action="role_addUI">添加</s:a> </body> </html>
相关文章推荐
- 使用JS实现RTMP协议直播(三)
- Toolbar使用方法
- HOJ-2056 Bookshelf(线性动态规划)
- ACM_模板_并查集
- HOJ-2056 Bookshelf(线性动态规划)
- 调查问卷
- Spiral Matrix II
- 3-9-模拟银行排队过程-栈和队列-第3章-《数据结构》课本源码-严蔚敏吴伟民版
- mktime的使用
- Android性能优化——优化下载以高效地访问网络
- ROS学习--轻松使用tf
- WPF中的DataGrid的RowDetail显示问题
- C语言字符串操作总结大全(超详细)
- 【MySQL】探究之TIMESTAMP
- linux内核分析第一周学习笔记
- 关于 adjustsFontSizeToFitWidth 的使用
- 第三次作业
- 分享在winform下实现左右布局多窗口界面-续篇
- 使用@Controller注解为什么要配置<mvc:annotation-driven />
- Linux下获取系统代理信息