OA学习笔记-008-岗位管理Action层实现

一、分析

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层

  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     private static final long serialVersionUID = 1L;
 22
 23     @Resource
 24     private RoleService roleService;
 25
 26     // private Long id;
 27     // private String name;
 28     // private String description;
 29
 30     private Role model = new Role();
 31
 32     public Role getModel() {
 33         return model;
 34     }
 35
 36     /** 列表 */
 37     public String list() throws Exception {
 38         List<Role> roleList = roleService.findAll();
 39         ActionContext.getContext().put("roleList", roleList);
 40         return "list";
 41     }
 42
 43     /** 删除 */
 44     public String delete() throws Exception {
 45         roleService.delete(model.getId());
 46         return "toList";
 47     }
 48
 49     /** 添加页面 */
 50     public String addUI() throws Exception {
 51         return "saveUI";
 52     }
 53
 54     /** 添加 */
 55     public String add() throws Exception {
 56         // // 封装到对象中
 57         // Role role = new Role();
 58         // role.setName(model.getName());
 59         // role.setDescription(model.getDescription());
 60         //
 61         // // 保存到数据库
 62         // roleService.save(role);
 63
 64         roleService.save(model);
 65
 66         return "toList";
 67     }
 68
 69     /** 修改页面 */
 70     public String editUI() throws Exception {
 71         // 准备回显的数据
 72         Role role = roleService.getById(model.getId());
 73         ActionContext.getContext().getValueStack().push(role);
 74
 75         return "saveUI";
 76     }
 77
 78     /** 修改 */
 79     public String edit() throws Exception {
 80         // 1,从数据库中获取原对象
 81         Role role = roleService.getById(model.getId());
 82
 83         // 2,设置要修改的属性
 84         role.setName(model.getName());
 85         role.setDescription(model.getDescription());
 86
 87         // 3,更新到数据库
 88         roleService.update(role);
 89
 90         return "toList";
 91     }
 92
 93     // ---
 94
 95     // public Long getId() {
 96     // return id;
 97     // }
 98     //
 99     // public void setId(Long id) {
100     // this.id = id;
101     // }
102     //
103     // public String getName() {
104     // return name;
105     // }
106     //
107     // public void setName(String name) {
108     // this.name = name;
109     // }
110     //
111     // public String getDescription() {
112     // return description;
113     // }
114     //
115     // public void setDescription(String description) {
116     // this.description = description;
117     // }
118 }

2.Service层

 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 Role getById(Long id) {
22         return roleDao.getById(id);
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     public void update(Role role) {
34         roleDao.update(role);
35     }
36
37     public List<Role> findAll() {
38         return roleDao.findAll();
39     }
40
41 }

3.Dao层

1 @Repository    //这里写了@Repository,则父类BaseDaoImpl的sessionFactory可以注入
2 public class RoleDaoImpl extends BaseDaoImpl<Role> implements RoleDao {
3
4 }

4.View层

(1)saveUI.jsp

 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     <script type="text/javascript">
12     </script>
13 </head>
14 <body>
15
16 <!-- 标题显示 -->
17 <div id="Title_bar">
18     <div id="Title_bar_Head">
19         <div id="Title_Head"></div>
20         <div id="Title"><!--页面标题-->
21             <img border="0" width="13" height="13" src="${pageContext.request.contextPath}/style/images/title_arrow.gif"/> 岗位设置
22         </div>
23         <div id="Title_End"></div>
24     </div>
25 </div>
26
27 <!--显示表单内容-->
28 <div id="MainArea">
29
30     <s:form action="role_%{ id == null ? ‘add‘ : ‘edit‘ }">
31         <s:hidden name="id"></s:hidden>
32
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 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>

(2)list.jsp

 1 <%@ page language="java" import="java.util.*" pageEncoding="utf-8"%>
 2 <%@ taglib prefix="s" uri="/struts-tags" %>
 3 <html>
 4     <head>
 5         <title>My JSP ‘index.jsp‘ starting page</title>
 6     </head>
 7     <body>
 8
 9         <%--
10         <s:iterator value="#roleList">
11             <s:property value="id"/>,
12             <s:property value="%{name}"/>,
13             <s:property value="description"/>,
14             <s:a action="role_delete?id=%{id}" onclick="return confirm(‘确定要删除吗?‘)">删除</s:a>,
15             <s:a action="role_editUI?id=%{id}">修改</s:a>
16             <br/>
17         </s:iterator>
18         --%>
19
20         <s:iterator value="#roleList">
21             ${id},
22             ${name},
23             ${description},
24             <s:a action="role_delete?id=%{id}" onclick="return confirm(‘确定要删除吗?‘)">删除</s:a>,
25             <s:a action="role_editUI?id=%{id}">修改</s:a>
26             <br/>
27         </s:iterator>
28
29         <br/>
30         <s:a action="role_addUI">添加</s:a>
31
32     </body>
33 </html>
时间: 2024-10-12 14:07:22

OA学习笔记-008-岗位管理Action层实现的相关文章

linux kernel学习笔记-5内存管理(转)

http://blog.sina.com.cn/s/blog_65373f1401019dtz.htmllinux kernel学习笔记-5 内存管理1. 相关的数据结构 相比用户空间而言,在内核中分配内存往往受到更多的限制,比如内核中很多情况下不能睡眠,此外处理内存分配失败也不像用户空间那么容易.内核使用了页和区两种数据结构来管理内存: 1.1 页 内核把物理页作为内存管理的基本单位.尽管CPU的最小可寻址单位通常为字(甚至字节),但是MMU(内存管理单元,管理内存并把虚拟地址转换为物理地址的

oracle学习笔记之用户管理-3

用户权限机制 1.不同用户表权限的赋予 grant select on scott.emp to software; ---当前登录用户为表所有者,则表名前不用指定所属用户 2.用software登录后 select * from scott.emp; ---software才有权限查询到scott的emp表 方案(schema) 当用户创建好后,如果该用户创建了一个数据对象(如表),此时dbms会创建一个对应的方案与改用户对应,并且该方案的名称和用户名称一致. system与scott都拥有自

【web开发学习笔记】Structs2 Action学习笔记(三)action通配符的使用

action学习笔记3-有关于通配符的讨论 使用通配符,将配置量降到最低,不过,一定要遵守"约定优于配置"的原则. 一:前端htm <前端代码html> </head> <body> <a href="<%=context %>/actions/Studentadd">添加学生</a> <a href="<%=context %>/actions/Studentdel

oracle学习笔记之用户管理-2

案例:创建一个用户software,然后给分配权限,可以让software登录数据库.创建表.操作自己创建的表,回收角色,最后删除用户. 1.创建software用户,密码system create user software identified by system; 2.让software连接数据库,需要给其connect.resource权限 grant connect to software; grant resource to software; 3.使用software用户登录 co

struts2学习笔记(4)---------action中的方法调用

系统需要使用Action的不同方法来处理用户请求,这就需要让同一个Action里面包含多个控制处理逻辑. 1)动态方法调用 即DMI(dynamic method invocation),使用actionName!methodName的形式来指定想要调用的方法,如果想使用DMI,需要在struts.xml里面加入这句话: <constant name="struts.enable.DynamicMethodInvocation" value="true" /&

Object C学习笔记25-文件管理(一)

在此篇文章中简单记录一下文件管理,在Object C中NSFileManager用于管理文件已经路径.在Object C中的文件路径可以是相对路径也可以是绝对路径.斜线"/"开头,斜线实际上就是一个目录,称为 根目录.字符(-)用作用户主目录的缩写.点" . "表示当前目录,两点"  .. "表示父目录. 一. 创建NSFileManager 对象 NSFileManager非常简单,可以使用如下方式来创建NSFileManager对象. NSS

oracle学习笔记之用户管理-1

sys    system(管理员) scott(普通用户) sqlserver sa 前提:oracle 上,假如自己是管理员,当需要建立用户的时候,由自己操作: 1.创建用户(sys system用户) create user username identified by password; 注意:密码不能以数字开头 create user mmy identified by system; 创建的mmy用户,并不能通过conn立刻登录,需要进行下面一步 2.赋予用户相应的权限 grant

Qt学习笔记-Widget布局管理

Qt学习笔记4-Widget布局管理 以<C++ GUI Programming with Qt 4, Second Edition>为参考 实例:查找对话框 包含三个文件,finddialog.h,finddialog.cpp及main.cpp. //finddialog.h代码 #ifndef FINDDIALOG_H#define FINDDIALOG_H #include <QDialog> class QCheckBox;class QLabel;class QLineE

Linux System Programming 学习笔记(五) 进程管理

1. 进程是unix系统中两个最重要的基础抽象之一(另一个是文件) A process is a running program A thread is the unit of activity inside of a process the virtualization of memory is associated with the process, the threads all share the same memory address space 2. pid The idle pro