您的位置:首页 > 其它

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层

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>
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: