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
    评论
umijs商业级实战项目OA管理系统 网盘是一个基于umijs框架开发的一套企业级管理系统。该系统主要面向企业内部运营管理,提供文档管理、团队协作、工作流程和权限管理等功能。 该系统的网盘模块是其核心功能之一。它提供了企业内部文件存储和共享的功能,可满足企业内部不同部门之间的文件协作需求。用户可以通过网盘模块上传和下载文件,对文件进行分类和管理实现文件的版本控制和共享。同时,该网盘还具备多人在线编辑的功能,支持多人同时编辑同一个文件,提高团队协作的效率。 该系统还提供了OA管理模块,主要包括日程安排、任务管理、人事管理等功能。用户可以通过该模块管理自己的工作日程和任务,实现任务的分配和跟踪。此外,人事管理功能可以帮助企业进行员工档案管理和薪资核算等工作,提高人力资源管理的效率。 此外,该系统还提供了工作流程管理和权限系统。用户可以通过工作流程管理模块对企业内部业务流程进行管理和优化,提高工作效率和质量。权限系统可以实现精细的权限控制,根据角色和用户对系统的访问进行控制,确保信息的安全性。 综上所述,umijs商业级实战项目OA管理系统 网盘是一套功能齐全、可定制性强的企业级管理系统。通过提供文件存储与共享、日程安排、任务管理、工作流程管理和权限系统等功能,帮助企业提高内部运营效率,促进团队协作,实现业务优化。

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

打赏作者

上善若水

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

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

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

打赏作者

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

抵扣说明:

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

余额充值