OA项目实战学习(3)——实现岗位管理增删改查

我们这里注重实现功能,对页面不进行布局。

一、分析增删改查的功能:

 

  • 添加、修改、删除成功后 要重定向到列表功能,这样在刷新页面时才不会出现“又做一次增、删、改”的操作。
  • 列表与删除功能都是只有一个请求。
  • 添加与修改功能都是有两个请求。
增删改查共4个功能,6个请求,需要在Action中有6个对应的处理方法。


二、代码实现:

RoleAction.java
package cn.xbmu.oa.view.action;

import java.util.List;

import javax.annotation.Resource;

import org.springframework.context.annotation.Scope;
import org.springframework.stereotype.Controller;

import cn.xbmu.oa.domain.Role;
import cn.xbmu.oa.service.RoleService;

import com.opensymphony.xwork2.ActionContext;
import com.opensymphony.xwork2.ActionSupport;
public class RoleAction extends ActionSupport {
	
	/**查询*/
	public String list() throws Exception {
		
		return "list";
	}
	/**添加页面*/
	public String addUI() throws Exception {
		return "addUI";
	}
	/**添加*/
	public String add() throws Exception {
		return "toList";
	}
	/**删除*/
	public String delete() throws Exception {
		return "toList";
	}
	/**修改页面*/
	public String editUI() throws Exception {
		return "editUI";
	}
	/**修改*/
	public String edit() throws Exception {
		return "toList";
	}
	public Long getId() {
		return id;
	}
	public void setId(Long id) {
		this.id = id;
	}
}
struts.xml
<?xml version="1.0" encoding="UTF-8" ?>
<!DOCTYPE struts PUBLIC
	"-//Apache Software Foundation//DTD Struts Configuration 2.3//EN"
	"http://struts.apache.org/dtds/struts-2.3.dtd">

<struts>
	<!-- 配置为开发模式 -->
    <constant name="struts.devMode" value="true" />
    <!-- 配置扩展名为action -->
	<constant name="struts.action.extension" value="action"/>
    <package name="default" namespace="/" extends="struts-default">
    	<!-- 测试用的action,当与Spring整合后,class属性写的就是bean的名称-->
		<action name="test" class="testAction">
			<result name="success">/test.jsp</result>
		</action>
		
		<!-- 岗位管理 -->
		<action name="roleAction_*" class="roleAction" method="{1}">
			<result name="list">/WEB-INF/jsp/roleAction/list.jsp</result>
			<result name="addUI">/WEB-INF/jsp/roleAction/addUI.jsp</result>
			<result name="editUI">/WEB-INF/jsp/roleAction/editUI.jsp</result>
			<result name="toList" type="redirectAction">roleAction_list</result>
		</action>
    </package>    
</struts>

查询与删除:

RoleAction.java
package cn.xbmu.oa.view.action;

import java.util.List;

import javax.annotation.Resource;

import org.springframework.context.annotation.Scope;
import org.springframework.stereotype.Controller;

import cn.xbmu.oa.domain.Role;
import cn.xbmu.oa.service.RoleService;

import com.opensymphony.xwork2.ActionContext;
import com.opensymphony.xwork2.ActionSupport;
@Controller
@Scope("prototype")
public class RoleAction extends ActionSupport {
	@Resource
	private RoleService roleService;
	private Long id;
	/**查询*/
	public String list() throws Exception {
		List<Role> roleList = roleService.findAll();
		ActionContext.getContext().put("roleList", roleList);
		return "list";
	}
	/**添加页面*/
	public String addUI() throws Exception {
		return "addUI";
	}
	/**添加*/
	public String add() throws Exception {
		return "toList";
	}
	/**删除*/
	public String delete() throws Exception {
		roleService.delete(id);
		return "toList";
	}
	/**修改页面*/
	public String editUI() throws Exception {
		return "editUI";
	}
	/**修改*/
	public String edit() throws Exception {
		return "toList";
	}
	public Long getId() {
		return id;
	}
	public void setId(Long id) {
		this.id = id;
	}
	
	
}
RoleService.java
package cn.xbmu.oa.service;

import java.util.List;

import cn.xbmu.oa.domain.Role;

public interface RoleService {
	/**
	 * 查询所有岗位
	 * @return
	 */
	List<Role> findAll();

	void delete(Long id);

}
RoleServiceImpl.java
package cn.xbmu.oa.service.impl;

import java.util.List;

import javax.annotation.Resource;

import org.springframework.stereotype.Service;
import org.springframework.transaction.annotation.Transactional;

import cn.xbmu.oa.dao.RoleDao;
import cn.xbmu.oa.domain.Role;
import cn.xbmu.oa.service.RoleService;
@Service
@Transactional
public class RoleServiceImpl implements RoleService {
	@Resource
	private RoleDao roleDao;
	public List<Role> findAll() {
		return roleDao.findAll();
	}
	public void delete(Long id) {
		roleDao.delete(id);
		
	}

}
RoleDao.java
package cn.xbmu.oa.dao;

import cn.xbmu.oa.base.BaseDao;
import cn.xbmu.oa.domain.Role;

public interface RoleDao extends BaseDao<Role>{

}
RoleDaoImpl.java
package cn.xbmu.oa.dao.impl;

import org.springframework.stereotype.Repository;

import cn.xbmu.oa.base.BaseDaoImpl;
import cn.xbmu.oa.dao.RoleDao;
import cn.xbmu.oa.domain.Role;
@Repository
public class RoleDaoImpl extends BaseDaoImpl<Role> implements RoleDao{

}
list.jsp
<%@ page language="java" import="java.util.*" pageEncoding="UTF-8"%>
<%@ taglib prefix="s" uri="/struts-tags" %>
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">
<html>
  <head>
  </head>
  <body>
  	<%-- 
  	<s:iterator value="#roleList">
  		<s:property value="id"/>,
  		<s:property value="name"/>,
  		<s:property value="description"/>,
  		<a href="roleAction_delete.action?id=<s:property value='id'/>" οnclick="return confirm('您确定删除吗?')">删除</a><br/>
  	</s:iterator>
  	--%>
  	
  	<s:iterator value="#roleList">
  		${id},
  		${name},
  		${description},
	  	<%-- 
  		<a href="${pageContext.request.contextPath}/roleAction_delete.action?id=${id}" οnclick="return confirm('您确定删除吗?')">删除</a>
	  	--%>
	  	
	  	<%-- 
	  	<s:a action="roleAction_delete">
	  		<s:param name="id" value="%{id}"></s:param>
	  		删除
	  	</s:a>
	  	--%>
	  	
	  	<s:a action="roleAction_delete?id=%{id}" οnclick="return confirm('您确定删除吗')">删除</s:a>
  	</s:iterator>
  </body>
</html>
运行效果:

修改和添加:

RoleAction.java
package cn.xbmu.oa.view.action;

import java.util.List;

import javax.annotation.Resource;

import org.springframework.context.annotation.Scope;
import org.springframework.stereotype.Controller;

import cn.xbmu.oa.domain.Role;
import cn.xbmu.oa.service.RoleService;

import com.opensymphony.xwork2.ActionContext;
import com.opensymphony.xwork2.ActionSupport;
@Controller
@Scope("prototype")
public class RoleAction extends ActionSupport {
	@Resource
	private RoleService roleService;
	private Long id;
	private String name;
	private String description;
	
	/**查询*/
	public String list() throws Exception {
		List<Role> roleList = roleService.findAll();
		ActionContext.getContext().put("roleList", roleList);
		return "list";
	}
	/**删除*/
	public String delete() throws Exception {
		roleService.delete(id);
		return "toList";
	}
	/**添加页面*/
	public String addUI() throws Exception {
		return "addUI";
	}
	/**添加*/
	public String add() throws Exception {
		//得到参数,封装成对象
		Role role = new Role();
		role.setName(name);
		role.setDescription(description);
		
		//保存到数据库中
		roleService.save(role);
		return "toList";
	}
	/**修改页面*/
	public String editUI() throws Exception {
		Role role = roleService.getById(id);
		name = role.getName();
		description = role.getDescription();
		return "editUI";
	}
	/**修改*/
	public String edit() throws Exception {
		//从数据库中取出原对象
		Role role = roleService.getById(id);
		
		//设置要修改的属性
		role.setName(name);
		role.setDescription(description);
		
		//更新到数据库中
		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;
	}
}
RoleService.java
package cn.xbmu.oa.service;

import java.util.List;

import cn.xbmu.oa.domain.Role;

public interface RoleService {
	/**
	 * 查询所有岗位
	 * @return
	 */
	List<Role> findAll();

	void delete(Long id);

	void save(Role role);

	Role getById(Long id);

	void update(Role role);

}
RoleServiceImpl.java
package cn.xbmu.oa.service.impl;

import java.util.List;

import javax.annotation.Resource;

import org.springframework.stereotype.Service;
import org.springframework.transaction.annotation.Transactional;

import cn.xbmu.oa.dao.RoleDao;
import cn.xbmu.oa.domain.Role;
import cn.xbmu.oa.service.RoleService;
@Service
@Transactional
public class RoleServiceImpl implements RoleService {
	@Resource
	private RoleDao roleDao;
	public List<Role> findAll() {
		return roleDao.findAll();
	}
	public void delete(Long id) {
		roleDao.delete(id);
		
	}
	public void save(Role role) {
		roleDao.save(role);
		
	}
	public Role getById(Long id) {
		return roleDao.getById(id);
	}
	public void update(Role role) {
		roleDao.update(role);
		
	}

}
list.jsp
<%@ page language="java" import="java.util.*" pageEncoding="UTF-8"%>
<%@ taglib prefix="s" uri="/struts-tags" %>
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">
<html>
  <head>
  </head>
  <body>
  	<%-- 
  	<s:iterator value="#roleList">
  		<s:property value="id"/>,
  		<s:property value="name"/>,
  		<s:property value="description"/>,
  		<a href="roleAction_delete.action?id=<s:property value='id'/>" οnclick="return confirm('您确定删除吗?')">删除</a><br/>
  	</s:iterator>
  	--%>
  	
  	<s:iterator value="#roleList">
  		${id},
  		${name},
  		${description},
	  	<%-- 
  		<a href="${pageContext.request.contextPath}/roleAction_delete.action?id=${id}" οnclick="return confirm('您确定删除吗?')">删除</a>
	  	--%>
	  	
	  	<%-- 
	  	<s:a action="roleAction_delete">
	  		<s:param name="id" value="%{id}"></s:param>
	  		删除
	  	</s:a>
	  	--%>
	  	
	  	<s:a action="roleAction_delete?id=%{id}" οnclick="return confirm('您确定删除吗')">删除</s:a>
	  	<s:a action="roleAction_editUI?id=%{id}">编辑</s:a><br/>
  	</s:iterator><br/>
  	<s:a action="roleAction_addUI">添加</s:a>
  </body>
</html>
addUI.jsp
<%@ page language="java" import="java.util.*" pageEncoding="UTF-8"%>
<%@ taglib prefix="s" uri="/struts-tags" %>
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">
<html>
  <head>
  </head>
  <body>
  	<s:form action="roleAction_add">
  		<s:textfield label="岗位名称" name="name"/>
  		<s:textarea label="岗位说明" name="description"/>
  		<s:submit value="提交"/>
  	</s:form>
  </body>
</html>
editUI.jsp
<%@ page language="java" import="java.util.*" pageEncoding="UTF-8"%>
<%@ taglib prefix="s" uri="/struts-tags" %>
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">
<html>
  <head>
  </head>
  <body>
  	<s:form action="roleAction_edit">
  		<s:hidden name="id"/>
  		<s:textfield label="岗位名称" name="name"/>
  		<s:textarea label="岗位说明" name="description"/>
  		<s:submit value="提交"/>
  	</s:form>
  </body>
</html>
运行效果:

三、Struts中的模型驱动的使用:

RoleAction.java
package cn.xbmu.oa.view.action;

import java.util.List;

import javax.annotation.Resource;

import org.springframework.context.annotation.Scope;
import org.springframework.stereotype.Controller;

import cn.xbmu.oa.domain.Role;
import cn.xbmu.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>{
	@Resource
	private RoleService roleService;
	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 "addUI";
	}
	/**添加*/
	public String add() throws Exception {
		//保存到数据库中
		roleService.save(model);
		return "toList";
	}
	/**修改页面*/
	public String editUI() throws Exception {
		Role role = roleService.getById(model.getId());
		//放到栈顶
		ActionContext.getContext().getValueStack().push(role);
		return "editUI";
	}
	/**修改*/
	public String edit() throws Exception {
		//从数据库中取出原对象
		Role role = roleService.getById(model.getId());
		
		//设置要修改的属性
		role.setName(model.getName());
		role.setDescription(model.getDescription());
		
		//更新到数据库中
		roleService.update(role);
		
		return "toList";
	}
}



  • 0
    点赞
  • 6
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 1
    评论
校企工作室OA源码 源码描述: 主要模块及系统管理功能说明: 一、考勤功能模块: 考勤分成三个功能,显示签到功能,查询功能,管理功能。 1.签到功能分析:在签到功能中,我们分4个时间段进行设计,上午上课时间签到,上午下课时间签到,下午上课时间签到,下午下课时间签到(四个时间段时间由管理员自己设置,签到的时间只能在设置时间的前后一个小时,这样设计更加的人性化,防止别人没来的及签到,和早到想签到的情况)而且在签到功能签到后,在功能的下方会显示你的签到情况,和你最近一个星期的签到详细记录。 2.查询功能分析:在查询功能中,我们设置了一些查询的时间段,组名,姓名 还有是否缺勤等功能功能,教师可以在查询人员信息的时候,根据时间段,组名,姓名是否缺勤等来查询自己想要的结果,点击进入查询功能默认是查询全部 3.管理功能分析:在管理功能中,我们根据登陆角色的不同,给予不同的权限,就是不同的管理功能,在功能设计中,我们设置了组名框、姓名框。选择相应的组名,姓名框中都会显示该组的人员姓名,当用户点击查询时,管理功能的下面的详细页面会显示查询的姓名\ 账户\ 签到情况 \ 备注情况 \ 编辑 \ 是否缺勤。 二、项目管理功能模块: 项目管理分析功能分为、新增项目功能、 我的项目功能、 项目查询功能、项目修改功能 1. 新增项目功能分析: 该功能仅限老师可以使用,老师可以在其中添加项目名称,规定项目的开发开始时间,项目开发结束时间,项目的负责人,项目的成员,项目的测评人,项目简介,附件,测评报告,是否完成状态 2. 我的项目功能分析: 在该功能中显示的是已完成的项目,和正在进行的项目。 3. 已完成功能介绍: 在这其中查询为默认查询,还有时间段的查询来,查看相关的项目 ,还有项目的闲情和这个项目进行时相关人员的日志。 4. 正在进行的项目功能介绍: 该功能默认进去时显示所有的进行中的所有项目,然后后面有项目的闲情,点击进去会显示详细的项目所有信息,下面附属这组员开发期间提交的日志信息,还有筛选功能,可以筛选自己的想要的看的日志(最新上传的日志在最上面),最下面是一个提交日志的按钮! 5. 项目查询功能分析: 在查询功能中,可以根据项目的时间,名称 ,已完成,未完成的情况来查询项目修改功能分析:该功能仅限老师,但是就算是老师,项目的名称也是不能修改的,其他的功能都是可以修改的,在这个功能的下端,有一个提交项目测评报告的按钮! 6. 项目归档功能分析 该功能可以上传完成项目文件和查询管理所有归档项目 三、站内线功能模块: 1. 建立内部的通信平台 建立单位内部的消息中心,使单位内部的通信和信息交流快捷通畅。 2. 信息发布功能分析: 该功能具备群发功能。可以实现对多人或者个人进行发送信息,当学员登陆该系统的时候,就能在第一时间收到老师对其发送的任务信息! 3. 信息收件箱功能分析: 该功能里面可以看到所有收到的信息 ,并且对其进行删除和修改。 4. 信息已发送功能分析: 该功能可以看到所有已发送的信息功能,并且可以对其进行删除 5. 信息回收站功能分析 该功能里面看到的是所有已删除的信息,在此功能删除信息就等于真正删除了所选的信息,这样设置防止了人员的失误操作,使系统更加的人性化,高效率的操作。 四、系统公告管理模块: 1.公告发布功能分析:在这个功能中可以填写发布的公告,然后造系统的前台就可以看到发布的内容 2. 公告管理功能分析:在这个功能中可以对发布的公告进行增、删、改、查。 五、系统管理模块: 在系统管理模块中分为角色管理、用户管理、考勤设置。 1. 角色管理功能分析:角色管理功能可以给不同的用户分配不同的角色这样,可以让不同的用户拥有不同的权限功能。 2. 用户管理功能分析:用户管理模块,可以对不同的用户进行管理。 3. 考勤管理功能分析:考勤设置功能可以对考勤的时间进行设置管理 六、个人管理模块: 该功能里面分为密码修改和个人信息管理功能,可以实现用户对自己密码和个信息的修改。 默认登录名密码均为51aspx

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

上善若水

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值