package com.keep.ssm.controller;
import com.keep.ssm.domain.*;
import com.keep.ssm.service.*;
import java.io.File;
import java.util.*;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Controller;
import org.springframework.ui.Model;
import org.springframework.validation.BindingResult;
import org.springframework.web.bind.annotation.*;
import javax.servlet.http.HttpServletRequest;
import javax.validation.Valid;
@Controller
public class EployeeController {
@Autowired
private EmployeeService empService;
@Autowired
private DepartmentService deptService;
public EmployeeService getEmpService() {
return empService;
}
public void setEmpService(EmployeeService empService) {
this.empService = empService;
}
public DepartmentService getDeptService() {
return deptService;
}
public void setDeptService(DepartmentService deptService) {
this.deptService = deptService;
}
@RequestMapping(value = "/emps", method = RequestMethod.GET)
public String getEmps(Map<String, Object> map) {
map.put("emps", empService.findAllEmps());
System.out.println(empService.findAllEmps().size());
return "/emp/emps";
}
@RequestMapping(value = "/emp/add", method = RequestMethod.GET)
public String addEmp(Map<String, Object> map) {
map.put("depts", deptService.findAllDepts());
HashMap<Boolean, String> sexMap = new HashMap<Boolean, String>();
sexMap.put(true, "男");
sexMap.put(false, "女");
map.put("sexMap", sexMap);
Employee emp = new Employee();
emp.setDept(new Department());
map.put("employee", emp);
return "/emp/add";
}
@RequestMapping(value = "/emp/add", method = RequestMethod.POST)
public String addEmp(@Valid @ModelAttribute("employee") Employee employee, BindingResult bindingResult, Map<String, Object> map) {
if (bindingResult.getFieldErrorCount() > 0) {
System.out.println("校验失败!");
HashMap<Boolean, String> sexMap = new HashMap<Boolean, String>();
sexMap.put(true, "男");
sexMap.put(false, "女");
map.put("sexMap", sexMap);
map.put("depts", deptService.findAllDepts());
return "/emp/add";
}
empService.addEmp(employee);
return "redirect:/emps";
}
@RequestMapping(value = "/emp/{id}")
public String updateEmp(@PathVariable("id") String id, Model model) {
System.out.println("修改" + id);
Employee emp = empService.findEmpById(id);
model.addAttribute("employee", emp);
model.addAttribute("depts", deptService.findAllDepts());
HashMap<Boolean, String> sexMap = new HashMap<Boolean, String>();
sexMap.put(true, "男");
sexMap.put(false, "女");
model.addAttribute("sexMap", sexMap);
return "emp/update";
}
@RequestMapping(value = "/emp/update", method = RequestMethod.POST)
public String updateEmp(@Valid @ModelAttribute("employee") Employee employee, BindingResult bindingResult, Map<String, Object> map) {
if (bindingResult.getFieldErrorCount() > 0) {
System.out.println("校验失败!");
HashMap<Boolean, String> sexMap = new HashMap<Boolean, String>();
sexMap.put(true, "男");
sexMap.put(false, "女");
map.put("sexMap", sexMap);
map.put("depts", deptService.findAllDepts());
map.put("employee", employee);
return "emp/update";
}
System.out.println(employee);
empService.updateEmp(employee);
return "redirect:/emps";
}
@RequestMapping(value = "/emp/{id}", method = RequestMethod.DELETE)
public String deleteEmp(@PathVariable("id") String id, Map<String, Object> map) {
System.out.println("删除" + id);
empService.deleteEmpById(id);
return "redirect:/emps";
}
@RequestMapping(value = "/emp/load", method = RequestMethod.GET)
public String showDownloadFiles(HttpServletRequest request, Model model) {
String downloadPath = request.getServletContext().getRealPath("/temp");
File downloadFile = new File(downloadPath);
List<String> fileNames = new ArrayList<String>();
File[] files = downloadFile.listFiles();
for (File f : files != null ? files : new File[0]) {
fileNames.add(f.getName());
}
model.addAttribute("fileNames", fileNames);
return "emp/emps";
}
}
员工管理系统ssm简单页面增删改查操作
需积分: 0 69 浏览量
更新于2022-11-16
2
收藏 45.04MB ZIP 举报
SSM(Spring、SpringMVC、MyBatis)是一个经典的Java web开发框架组合,它将Spring的核心容器、Spring的Web MVC模块以及MyBatis持久层框架整合在一起,为开发人员提供了一个高效、灵活的开发环境。在这个“员工管理系统ssm简单页面增删改查操作”项目中,我们将探讨如何利用SSM框架实现对员工信息的基本操作。
Spring作为核心容器,负责管理应用的组件,包括Bean的生命周期管理和依赖注入。在项目中,员工实体类(Employee)、业务逻辑接口(EmployeeService)及其实现类(EmployeeServiceImpl)都会被Spring管理,通过XML配置文件或注解方式定义Bean的创建和依赖关系。
SpringMVC是Spring提供的用于构建Web应用程序的模块。它负责处理HTTP请求,将请求转发给对应的控制器(Controller),如EmployeeController,然后由控制器调用业务逻辑方法,完成对员工数据的操作。在处理完业务逻辑后,SpringMVC还会根据返回的结果视图(View)名称,结合视图解析器(ViewResolver)来决定展示哪个JSP页面。
接着,MyBatis是一个轻量级的持久层框架,它简化了数据库操作。在本项目中,MyBatis的配置文件(mybatis-config.xml)会包含数据源配置和SqlSessionFactory的设置。此外,我们还需要编写映射文件(EmployeeMapper.xml),定义SQL语句和结果映射,与EmployeeMapper接口配合,实现对员工表(可能名为employee)的CRUD操作。
项目部署在Tomcat服务器上,这是一款广泛使用的开源Java EE应用服务器,能承载Java Web应用。开发者需要将项目打包成WAR文件,然后通过Tomcat的管理界面或命令行工具将其部署到服务器上。
在前端,通常会使用HTML、CSS和JavaScript进行页面设计和交互。员工信息的展示、添加、删除和修改等操作,可以通过AJAX技术异步地向后台发送请求,获取并更新数据。JSP页面(如employeeList.jsp、employeeAdd.jsp等)作为视图,展示数据和交互元素,JQuery或Vue.js等库可以提高前端的开发效率。
在实现增删改查功能时,需要注意事务管理。由于这些操作可能涉及多条数据库记录,因此需要确保它们在一个事务中执行,以保证数据的一致性。Spring提供了声明式事务管理,可以在方法级别或类级别进行配置,使得事务控制更加便捷。
项目的测试同样重要。单元测试可以针对各个组件进行,如EmployeeService的测试,而集成测试则验证整个SSM框架下各组件协同工作的正确性。JUnit和Mockito等工具可以帮助进行测试驱动开发,确保代码质量。
这个“员工管理系统ssm简单页面增删改查操作”项目涵盖了Java Web开发中的许多核心概念和技术,包括SSM框架的使用、数据库操作、Web请求处理、前端交互以及部署与测试等,对于初学者来说是一个很好的实践平台。
:—
- 粉丝: 0
- 资源: 3
最新资源
- 获奖竞赛项目-水下管道智能巡检赛项潜艇机器人控制(含全部参赛源码及资料).zip
- 中国机器人及人工智能大赛-智慧药房组参赛获奖作品(含全部参赛源码及资料).zip
- 基于深度学习与Neo4j的军事武器知识图谱网页应用原型系统(含源码+项目说明).zip
- 电子学习资料设计作品全资料基于51单片机的电子万年历的设计资料
- python语言huochepiao爬虫程序代码QZQ.txt
- python语言tp爬虫程序代码ZQ.txt
- 电子学习资料设计作品全资料基于51单片机的数字频率计资料
- comsol激光抛光、熔覆熔池流动,考虑马兰戈尼对流(考虑活性元素,改变表面张力系数),表面张力、蒸汽反冲压力、重力、浮力
- 电子学习资料设计作品全资料基于AT89S52单片机和DS1302的电子万年历设计资料
- 直流无刷电机BLDC控制,转速环采用ADRC自抗扰控制器,电机反电势为梯形波,采用矢量控制,动态性能好 图一为三相梯形波相电流 图二为梯形波反电势 图三为转速波形 图四为三相开关信号 图五为仿真框图
- 电子学习资料设计作品全资料基于AVR单片机的汽车空调控制系统资料
- npm版本管理,nvm
- SwiftUI 基础课程第五课:@Binding、NavigationLink、以及dismiss、SwiftUI闭包回调
- comsol多物理场: 热流固耦合 压缩空气 应力场 温度场 渗流场
- 电子学习资料设计作品全资料基于AVR及无线收发模块的脉搏监测系统设计资料
- Java毕设项目:基于spring+mybatis+maven+mysql实现的端游账号游戏账号销售管理系统【含源码+数据库+毕业论文】