1.pom.xml文件导入相关坐标
<?xml version="1.0" encoding="UTF-8"?>
< project xmlns = " http://maven.apache.org/POM/4.0.0"
xmlns: xsi= " http://www.w3.org/2001/XMLSchema-instance"
xsi: schemaLocation= " http://maven.apache.org/POM/4.0.0 http://maven.apache.org/xsd/maven-4.0.0.xsd" >
< modelVersion> 4.0.0</ modelVersion>
< groupId> com.ty</ groupId>
< artifactId> maven_ssm_0224</ artifactId>
< version> 1.0-SNAPSHOT</ version>
< packaging> war</ packaging>
< properties>
< junit.version> 4.12</ junit.version>
< spring.version> 5.0.0.RELEASE</ spring.version>
< mybatis.version> 3.5.0</ mybatis.version>
< mybatis.spring.version> 1.3.2</ mybatis.spring.version>
< mybatis.paginator.version> 1.2.15</ mybatis.paginator.version>
< mysql.version> 8.0.13</ mysql.version>
< slf4j.version> 1.7.25</ slf4j.version>
< jackson.version> 2.9.8</ jackson.version>
< druid.version> 1.1.10</ druid.version>
< jstl.version> 1.2</ jstl.version>
< servlet-api.version> 4.0.0</ servlet-api.version>
< jsp-api.version> 2.3.3</ jsp-api.version>
< common-lang3.version> 3.3.2</ common-lang3.version>
< common-io.version> 1.3.2</ common-io.version>
< common-net.version> 3.3</ common-net.version>
< pagehelper.version> 5.1.0</ pagehelper.version>
< common-fileupload.version> 1.3.1</ common-fileupload.version>
</ properties>
< dependencies>
< dependency>
< groupId> org.apache.commons</ groupId>
< artifactId> commons-lang3</ artifactId>
< version> ${common-lang3.version}</ version>
</ dependency>
< dependency>
< groupId> org.apache.commons</ groupId>
< artifactId> commons-io</ artifactId>
< version> ${common-io.version}</ version>
</ dependency>
< dependency>
< groupId> commons-net</ groupId>
< artifactId> commons-net</ artifactId>
< version> ${common-net.version}</ version>
</ dependency>
< dependency>
< groupId> com.fasterxml.jackson.core</ groupId>
< artifactId> jackson-databind</ artifactId>
< version> ${jackson.version}</ version>
</ dependency>
< dependency>
< groupId> junit</ groupId>
< artifactId> junit</ artifactId>
< version> ${junit.version}</ version>
< scope> test</ scope>
</ dependency>
< dependency>
< groupId> org.slf4j</ groupId>
< artifactId> slf4j-log4j12</ artifactId>
< version> ${slf4j.version}</ version>
</ dependency>
< dependency>
< groupId> org.mybatis</ groupId>
< artifactId> mybatis</ artifactId>
< version> ${mybatis.version}</ version>
</ dependency>
< dependency>
< groupId> org.mybatis</ groupId>
< artifactId> mybatis-spring</ artifactId>
< version> ${mybatis.spring.version}</ version>
</ dependency>
< dependency>
< groupId> com.github.miemiedev</ groupId>
< artifactId> mybatis-paginator</ artifactId>
< version> ${mybatis.paginator.version}</ version>
</ dependency>
< dependency>
< groupId> com.github.pagehelper</ groupId>
< artifactId> pagehelper</ artifactId>
< version> ${pagehelper.version}</ version>
</ dependency>
< dependency>
< groupId> mysql</ groupId>
< artifactId> mysql-connector-java</ artifactId>
< version> ${mysql.version}</ version>
</ dependency>
< dependency>
< groupId> com.alibaba</ groupId>
< artifactId> druid</ artifactId>
< version> ${druid.version}</ version>
</ dependency>
< dependency>
< groupId> org.springframework</ groupId>
< artifactId> spring-web</ artifactId>
< version> ${spring.version}</ version>
</ dependency>
< dependency>
< groupId> org.springframework</ groupId>
< artifactId> spring-webmvc</ artifactId>
< version> ${spring.version}</ version>
</ dependency>
< dependency>
< groupId> org.springframework</ groupId>
< artifactId> spring-jdbc</ artifactId>
< version> ${spring.version}</ version>
</ dependency>
< dependency>
< groupId> org.springframework</ groupId>
< artifactId> spring-aspects</ artifactId>
< version> ${spring.version}</ version>
</ dependency>
< dependency>
< groupId> jstl</ groupId>
< artifactId> jstl</ artifactId>
< version> ${jstl.version}</ version>
</ dependency>
< dependency>
< groupId> javax.servlet</ groupId>
< artifactId> javax.servlet-api</ artifactId>
< version> ${servlet-api.version}</ version>
< scope> provided</ scope>
</ dependency>
< dependency>
< groupId> javax.servlet.jsp</ groupId>
< artifactId> javax.servlet.jsp-api</ artifactId>
< version> ${jsp-api.version}</ version>
< scope> provided</ scope>
</ dependency>
< dependency>
< groupId> commons-fileupload</ groupId>
< artifactId> commons-fileupload</ artifactId>
< version> ${common-fileupload.version}</ version>
</ dependency>
</ dependencies>
< build>
< resources>
< resource>
< directory> src/main/java</ directory>
< includes>
< include> **/*.xml</ include>
< include> **/*.properties</ include>
</ includes>
< filtering> false</ filtering>
</ resource>
< resource>
< directory> src/main/resources</ directory>
< includes>
< include> **/*.xml</ include>
< include> **/*.properties</ include>
</ includes>
< filtering> false</ filtering>
</ resource>
</ resources>
< plugins>
< plugin>
< groupId> org.apache.tomcat.maven</ groupId>
< artifactId> tomcat7-maven-plugin</ artifactId>
< version> 2.2</ version>
< configuration>
< port> 80</ port>
< path> /</ path>
</ configuration>
</ plugin>
</ plugins>
</ build>
</ project>
2.相关配置文件的配置
2.1日志打印log4j.properties
# Global logging configuration
log4j.rootLogger=DEBUG, stdout
# MyBatis logging configuration...
log4j.logger.org.mybatis.example.BlogMapper=TRACE
# Console output...
log4j.appender.stdout=org.apache.log4j.ConsoleAppender
log4j.appender.stdout.layout=org.apache.log4j.PatternLayout
log4j.appender.stdout.layout.ConversionPattern=%5p [%t] - %m%n
2.2数据源db.properties的配置
jdbc.driverClass=com.mysql.cj.jdbc.Driver
jdbc.url=jdbc:mysql://localhost:3306/maven-ssm-0224?serverTimezone=GMT%2B8
jdbc.username=root
jdbc.password=123456
2.3spring的配置文件applicationContext.xml的配置
<?xml version="1.0" encoding="utf-8"?>
< beans xmlns = " http://www.springframework.org/schema/beans"
xmlns: xsi= " http://www.w3.org/2001/XMLSchema-instance"
xmlns: context= " http://www.springframework.org/schema/context"
xmlns: aop= " http://www.springframework.org/schema/aop"
xmlns: tx= " http://www.springframework.org/schema/tx"
xsi: schemaLocation= " http://www.springframework.org/schema/beans
http://www.springframework.org/schema/beans/spring-beans.xsd
http://www.springframework.org/schema/context
http://www.springframework.org/schema/context/spring-context.xsd
http://www.springframework.org/schema/aop
http://www.springframework.org/schema/aop/spring-aop.xsd
http://www.springframework.org/schema/tx
http://www.springframework.org/schema/tx/spring-tx.xsd" >
< context: component-scan base-package = " com.ty.*" />
< context: property-placeholder location = " classpath:db.properties" />
< bean id = " dataSource" class = " com.alibaba.druid.pool.DruidDataSource" >
< property name = " driverClassName" value = " ${jdbc.driverClass}" />
< property name = " url" value = " ${jdbc.url}" />
< property name = " username" value = " ${jdbc.username}" />
< property name = " password" value = " ${jdbc.password}" />
</ bean>
< bean id = " sqlSessionFactory" class = " org.mybatis.spring.SqlSessionFactoryBean" >
< property name = " dataSource" ref = " dataSource" />
< property name = " configLocation" value = " classpath:SqlMapConfig.xml" />
</ bean>
< bean class = " org.mybatis.spring.mapper.MapperScannerConfigurer" >
< property name = " basePackage" value = " com.ty.mapper" />
</ bean>
< bean id = " transactionManager" class = " org.springframework.jdbc.datasource.DataSourceTransactionManager" >
< property name = " dataSource" ref = " dataSource" />
</ bean>
< tx: advice id = " txAdvice" transaction-manager = " transactionManager" >
< tx: attributes>
< tx: method name = " *" propagation = " REQUIRED" read-only = " false" />
< tx: method name = " find*" propagation = " SUPPORTS" read-only = " true" />
</ tx: attributes>
</ tx: advice>
< aop: config>
< aop: advisor advice-ref = " txAdvice" pointcut = " execution(* com.ty.service..*.*(..))" />
</ aop: config>
</ beans>
2.4springMVC的配置
<?xml version="1.0" encoding="utf-8"?>
< beans xmlns = " http://www.springframework.org/schema/beans"
xmlns: xsi= " http://www.w3.org/2001/XMLSchema-instance"
xmlns: context= " http://www.springframework.org/schema/context"
xmlns: mvc= " http://www.springframework.org/schema/mvc"
xsi: schemaLocation= " http://www.springframework.org/schema/beans
http://www.springframework.org/schema/beans/spring-beans.xsd
http://www.springframework.org/schema/context
http://www.springframework.org/schema/context/spring-context.xsd
http://www.springframework.org/schema/mvc http://www.springframework.org/schema/mvc/spring-mvc.xsd" >
< context: component-scan base-package = " com.ty.controller" />
< mvc: annotation-driven conversion-service = " conversionService" />
< bean class = " org.springframework.web.servlet.view.InternalResourceViewResolver" >
< property name = " prefix" value = " /jsp/" />
< property name = " suffix" value = " .jsp" />
</ bean>
< mvc: resources mapping = " /jsp/**" location = " /jsp/" />
< mvc: resources mapping = " /assets/**" location = " /assets/" />
< mvc: resources mapping = " /common/**" location = " /common/" />
< bean id = " conversionService" class = " org.springframework.format.support.FormattingConversionServiceFactoryBean" >
< property name = " converters" >
< bean class = " com.ty.until.StringToDate" />
</ property>
</ bean>
</ beans>
2.5mybatis的配置文件SqlMapConfig.xml
<?xml version="1.0" encoding="utf-8"?>
<!DOCTYPE configuration PUBLIC "-//mybatis.org//DTD Config 3.0//EN" "http://mybatis.org/dtd/mybatis-3-config.dtd">
< configuration>
< settings>
< setting name = " lazyLoadingEnabled" value = " true" />
< setting name = " aggressiveLazyLoading" value = " false" />
</ settings>
< typeAliases>
< package name = " com.ty.entity" > </ package>
</ typeAliases>
</ configuration>
2.6web.xml注册spring
<?xml version="1.0" encoding="UTF-8"?>
< web-app xmlns = " http://xmlns.jcp.org/xml/ns/javaee"
xmlns: xsi= " http://www.w3.org/2001/XMLSchema-instance"
xsi: schemaLocation= " http://xmlns.jcp.org/xml/ns/javaee http://xmlns.jcp.org/xml/ns/javaee/web-app_4_0.xsd"
version = " 4.0" >
< listener>
< listener-class> org.springframework.web.context.ContextLoaderListener</ listener-class>
</ listener>
< context-param>
< param-name> contextConfigLocation</ param-name>
< param-value> classpath:applicationContext.xml</ param-value>
</ context-param>
< servlet>
< servlet-name> springMVC</ servlet-name>
< servlet-class> org.springframework.web.servlet.DispatcherServlet</ servlet-class>
< init-param>
< param-name> contextConfigLocation</ param-name>
< param-value> classpath:springMVC.xml</ param-value>
</ init-param>
</ servlet>
< servlet-mapping>
< servlet-name> springMVC</ servlet-name>
< url-pattern> /</ url-pattern>
</ servlet-mapping>
< filter>
< filter-name> encoding</ filter-name>
< filter-class> org.springframework.web.filter.CharacterEncodingFilter</ filter-class>
< init-param>
< param-name> encoding</ param-name>
< param-value> utf-8</ param-value>
</ init-param>
</ filter>
< filter-mapping>
< filter-name> encoding</ filter-name>
< url-pattern> /*</ url-pattern>
</ filter-mapping>
</ web-app>
3.相关类的创建
3.1实体类的创建
package com. ty. entity;
import java. util. Date;
public class Employee {
private Integer id;
private String empNo;
private String empName;
private Integer sex;
private Date birth;
private String phone;
private String address;
private Date hiredate;
private String job;
private Dept dept;
public Integer getId ( ) {
return id;
}
public void setId ( Integer id) {
this . id = id;
}
public String getEmpNo ( ) {
return empNo;
}
public void setEmpNo ( String empNo) {
this . empNo = empNo;
}
public String getEmpName ( ) {
return empName;
}
public void setEmpName ( String empName) {
this . empName = empName;
}
public Integer getSex ( ) {
return sex;
}
public void setSex ( Integer sex) {
this . sex = sex;
}
public Date getBirth ( ) {
return birth;
}
public void setBirth ( Date birth) {
this . birth = birth;
}
public String getPhone ( ) {
return phone;
}
public void setPhone ( String phone) {
this . phone = phone;
}
public String getAddress ( ) {
return address;
}
public void setAddress ( String address) {
this . address = address;
}
public Date getHiredate ( ) {
return hiredate;
}
public void setHiredate ( Date hiredate) {
this . hiredate = hiredate;
}
public String getJob ( ) {
return job;
}
public void setJob ( String job) {
this . job = job;
}
public Dept getDept ( ) {
return dept;
}
public void setDept ( Dept dept) {
this . dept = dept;
}
}
package com. ty. entity;
public class Dept {
private Integer id;
private String deptNo;
private String deptName;
public Integer getId ( ) {
return id;
}
public void setId ( Integer id) {
this . id = id;
}
public String getDeptNo ( ) {
return deptNo;
}
public void setDeptNo ( String deptNo) {
this . deptNo = deptNo;
}
public String getDeptName ( ) {
return deptName;
}
public void setDeptName ( String deptName) {
this . deptName = deptName;
}
}
3.2maper包及映射文件的配置
package com. ty. mapper;
import com. ty. entity. Employee;
import java. util. List;
public interface EmployeeMapper {
public Employee findEmpByParam ( String empNo) ;
public List< Employee> findAllEmp ( ) ;
public void updateEmp ( Employee employee) ;
public void deleteEmp ( String empNo) ;
public void addEmp ( Employee employee) ;
}
<?xml version="1.0" encoding="UTF-8" ?>
<!DOCTYPE mapper PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN" "http://mybatis.org/dtd/mybatis-3-mapper.dtd">
< mapper namespace = " com.ty.mapper.EmployeeMapper" >
< resultMap id = " employee" type = " com.ty.entity.Employee" >
< id property = " id" column = " id" />
< result property = " empNo" column = " emp_no" />
< result property = " empName" column = " emp_name" />
< result property = " sex" column = " sex" />
< result property = " birth" column = " birth" />
< result property = " phone" column = " phone" />
< result property = " address" column = " address" />
< result property = " hiredate" column = " hiredate" />
< result property = " job" column = " job" />
< association property = " dept" javaType = " com.ty.entity.Dept" >
< result property = " deptName" column = " dept_name" > </ result>
</ association>
</ resultMap>
< select id = " findEmpByParam" parameterType = " String" resultMap = " employee" >
select e.*,d.dept_name from employee e,dept d where e.dept_name = d.dept_name and emp_no = #{empNo}
</ select>
< select id = " findAllEmp" resultMap = " employee" >
select e.*,d.dept_name from employee e,dept d where e.dept_name = d.dept_name
</ select>
< insert id = " addEmp" parameterType = " employee" >
insert into employee (emp_no,emp_name,sex,birth,phone,address,hiredate,job,dept_name)
values (#{empNo},#{empName},#{sex},#{birth},#{phone},#{address},#{hiredate},#{job},#{dept.deptName})
</ insert>
< update id = " updateEmp" parameterType = " employee" >
update employee set emp_name=#{empName},sex=#{sex},birth=#{birth},phone=#{phone},address=#{address},hiredate=#{hiredate},
job=#{job},dept_name=#{dept.deptName} where emp_no=#{empNo}
</ update>
< delete id = " deleteEmp" parameterType = " String" >
delete from employee where emp_no = #{empNo}
</ delete>
</ mapper>
package com. ty. mapper;
import com. ty. entity. Dept;
import java. util. List;
public interface DeptMapper {
public List< Dept> findDept ( ) ;
}
<?xml version="1.0" encoding="UTF-8" ?>
<!DOCTYPE mapper PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN" "http://mybatis.org/dtd/mybatis-3-mapper.dtd">
< mapper namespace = " com.ty.mapper.DeptMapper" >
< resultMap id = " dept" type = " com.ty.entity.Dept" >
< result property = " deptNo" column = " dept_no" />
< result property = " deptName" column = " dept_name" />
</ resultMap>
< select id = " findDept" resultMap = " dept" >
select * from dept
</ select>
</ mapper>
3.3service业务层的配置
package com. ty. service;
import com. ty. entity. Employee;
import com. ty. mapper. EmployeeMapper;
import org. springframework. beans. factory. annotation. Autowired;
import org. springframework. stereotype. Service;
import java. util. List;
@Service
public class EmployeeService {
@Autowired
private EmployeeMapper employeeMapper;
public void addEmp ( Employee employee) {
employeeMapper. addEmp ( employee) ;
}
public Employee findEmpByParam ( String empNo) {
return employeeMapper. findEmpByParam ( empNo) ;
}
public List< Employee> findAllEmp ( ) {
return employeeMapper. findAllEmp ( ) ;
}
public void updateEmp ( Employee employee) {
employeeMapper. updateEmp ( employee) ;
}
public void deleteEmp ( String empNo) {
employeeMapper. deleteEmp ( empNo) ;
}
}
package com. ty. service;
import com. ty. entity. Dept;
import com. ty. mapper. DeptMapper;
import org. springframework. beans. factory. annotation. Autowired;
import org. springframework. stereotype. Service;
import java. util. List;
@Service
public class DeptService {
@Autowired
public DeptMapper deptMapper;
public List< Dept> findDept ( ) {
return deptMapper. findDept ( ) ;
}
}
3.4controller控制层的配置
package com. ty. controller;
import com. ty. entity. Dept;
import com. ty. entity. Employee;
import com. ty. service. DeptService;
import com. ty. service. EmployeeService;
import org. springframework. beans. factory. annotation. Autowired;
import org. springframework. stereotype. Controller;
import org. springframework. ui. Model;
import org. springframework. web. bind. annotation. *;
import javax. servlet. http. HttpServletRequest;
import java. util. List;
@Controller
public class EmployeeController {
@Autowired
private EmployeeService employeeService;
@Autowired
private DeptService deptService;
@PostMapping ( "/emp" )
public String addEmp ( Employee employee) {
employeeService. addEmp ( employee) ;
return "redirect:/emp" ;
}
@GetMapping ( "/emp/toAdd" )
public String toAddEmpPage ( Model model) {
List< Dept> depts = deptService. findDept ( ) ;
model. addAttribute ( "depts" , depts) ;
return "add_list" ;
}
@GetMapping ( "/emp/{empNo}" )
public String findEmp ( @PathVariable ( "empNo" ) String empNo , Model model) {
Employee emp = employeeService. findEmpByParam ( empNo) ;
model. addAttribute ( "emps" , emp) ;
List< Dept> depts = deptService. findDept ( ) ;
model. addAttribute ( "depts" , depts) ;
return "update_list" ;
}
@GetMapping ( "/emp" )
public String findAllEmp ( HttpServletRequest request) {
List< Employee> emps = employeeService. findAllEmp ( ) ;
request. setAttribute ( "emps" , emps) ;
return "emp_list" ;
}
@RequestMapping ( value = "/delete/{empNo}" )
public String deleteEmp ( @PathVariable String empNo) {
employeeService. deleteEmp ( empNo) ;
return "redirect:/emp" ;
}
@PostMapping ( "/updateEmp" )
public String update ( Employee employee) {
employeeService. updateEmp ( employee) ;
return "redirect:/emp" ;
}
}
3.5字符转日期类的工具包
package com. ty. until;
import org. springframework. core. convert. converter. Converter;
import java. text. ParseException;
import java. text. SimpleDateFormat;
import java. util. Date;
public class StringToDate implements Converter < String, Date> {
@Override
public Date convert ( String source) {
SimpleDateFormat sdf = new SimpleDateFormat ( "yyyy-MM-dd" ) ;
Date date = null;
try {
date = sdf. parse ( source) ;
} catch ( ParseException e) {
e. printStackTrace ( ) ;
}
return date;
}
}
4.jsp页面
4.1员工展示页
<%@ page contentType="text/html;charset=UTF-8" language="java" %>
<%@ taglib prefix="c" uri="http://java.sun.com/jsp/jstl/core" %>
<%@ taglib prefix="fmt" uri="http://java.sun.com/jsp/jstl/fmt" %>
<html lang="en">
<head>
<meta charset="utf-8">
<!-- Favicon icon -->
<link rel="icon" type="image/png" sizes="16x16" href="/assets/images/favicon.png">
<title>Home</title>
<!-- Bootstrap Core CSS -->
<link href="/assets/plugins/bootstrap/css/bootstrap.min.css" rel="stylesheet">
<!-- Custom CSS -->
<link href="/jsp/css/style.css" rel="stylesheet">
<link href="/jsp/css/colors/default-dark.css" id="theme" rel="stylesheet">
</head>
<body class="fix-header card-no-border fix-sidebar">
<div class="preloader">
<div class="loader">
<div class="loader__figure"></div>
<p class="loader__label">Admin Pro</p>
</div>
</div>
<div id="main-wrapper">
<header class="topbar">
<jsp:include page="/common/header.jsp"/>
</header>
<aside class="left-sidebar">
<!-- Sidebar scroll-->
<div class="scroll-sidebar">
<!-- Sidebar navigation-->
<jsp:include page="/common/sidebar.jsp"/>
</div>
</aside>
<div class="page-wrapper">
<div class="container-fluid">
<div class="row page-titles">
<div class="col-md-5 align-self-center">
<h3 class="text-themecolor">员工信息一览表</h3>
</div>
</div>
<div class="row">
<!-- column -->
<div class="col-lg-12">
<div class="card">
<div class="card-body">
<h6 class="card-subtitle"><a href="/emp/toAdd">添加员工</a> </h6>
<div class="table-responsive">
<table class="table">
<thead>
<tr>
<th>编号</th>
<th>姓名</th>
<th>性别</th>
<th>出生日期</th>
<th>电话</th>
<th>住址</th>
<th>部门</th>
<th>工作</th>
<th>入职日期</th>
<th colspan="2"> 操作</th>
</tr>
</thead>
<tbody>
<c:forEach items="${emps}" var="emp">
<tr>
<td>${emp.empNo}</td>
<td>${emp.empName}</td>
<td>${emp.sex=="0"?"女":"男"}</td>
<td><fmt:formatDate value="${emp.birth}" pattern="yyyy-MM-dd"/></td>
<td>${emp.phone}</td>
<td>${emp.address}</td>
<td>${emp.dept.deptName}</td>
<td>${emp.job}</td>
<td><fmt:formatDate value="${emp.hiredate}" pattern="yyyy-MM-dd"/> </td>
<td><a href="emp/${emp.empNo}">编辑</a></td>
<td><a href="delete/${emp.empNo}" id="delete">删除</a></td>
</tr>
</c:forEach>
</tbody>
</table>
</div>
</div>
</div>
</div>
</div>
</div>
<footer class="footer">Copyright © 2019.Company name All rights reserved.<a target="_blank" href="http://sc.chinaz.com/moban/">网页模板</a></footer>
</div>
</div>
<script src="/jsp/js/jquery-3.4.1.min.js"></script>
<script src="/assets/plugins/jquery/jquery.min.js"></script>
<script src="/assets/plugins/bootstrap/js/popper.min.js"></script>
<script src="/assets/plugins/bootstrap/js/bootstrap.min.js"></script>
<script src="/jsp/js/perfect-scrollbar.jquery.min.js"></script>
<script src="/jsp/js/waves.js"></script>
<script src="/jsp/js/sidebarmenu.js"></script>
<script src="/jsp/js/custom.min.js"></script>
</body>
</html>
<script>
$(function () {
$("#delete").click(function () {
if(confirm("确定要删除该员工吗?")){
alert("删除成功!");
return true;
}
return false;
})
})
</script>
4.2员工添加页
<%@ page contentType="text/html;charset=UTF-8" language="java" %>
<%@ taglib prefix="c" uri="http://java.sun.com/jsp/jstl/core" %>
<%@ taglib prefix="fmt" uri="http://java.sun.com/jsp/jstl/fmt" %>
<html lang="en">
<head>
<meta charset="utf-8">
<!-- Favicon icon -->
<link rel="icon" type="image/png" sizes="16x16" href="/assets/images/favicon.png">
<title>Home</title>
<!-- Bootstrap Core CSS -->
<link href="/assets/plugins/bootstrap/css/bootstrap.min.css" rel="stylesheet">
<!-- Custom CSS -->
<link href="/jsp/css/style.css" rel="stylesheet">
<link href="/jsp/css/colors/default-dark.css" id="theme" rel="stylesheet">
</head>
<body class="fix-header card-no-border fix-sidebar">
<div class="preloader">
<div class="loader">
<div class="loader__figure"></div>
<p class="loader__label">Admin Pro</p>
</div>
</div>
<div id="main-wrapper">
<header class="topbar">
<jsp:include page="/common/header.jsp"/>
</header>
<aside class="left-sidebar">
<!-- Sidebar scroll-->
<div class="scroll-sidebar">
<!-- Sidebar navigation-->
<jsp:include page="/common/sidebar.jsp"/>
</div>
</aside>
<div class="page-wrapper">
<div class="container-fluid">
<div class="row page-titles">
<div class="col-md-5 align-self-center">
<h3 class="text-themecolor">员工信息添加</h3>
</div>
</div>
<div class="row">
<!-- column -->
<div class="col-lg-12">
<div class="card">
<div class="card-body">
<div class="table-responsive">
<form action="/emp" method="post">
<table>
<tr><th>员工编号:</th><td> <input type="text" name="empNo" ></td></tr>
<tr> <th>姓 名 :</th><td><input type="text" name="empName" ></td></tr>
<tr><th> 性 别 :</th><td><input type="radio" name="sex" value="0" >女 <input type="radio" name="sex" value="1" >男</td></tr>
<tr><th> 出生日期:</th><td><input type="text" name="birth"/></td></tr>
<tr><th>部 门 :</th><td><select name="dept.deptName">
<c:forEach items="${depts}" var="dept">
<option value="${dept.deptName}">${dept.deptName}</option>
</c:forEach>
</select></td></tr>
<tr> <th>电 话 :</th><td><input type="text" name="phone" /></td></tr>
<tr> <th>家庭住址:</th><td><input type="text" name="address"/></td></tr>
<tr> <th>岗 位 :</th> <td><input type="text" name="job"/></td></tr>
<tr><th>入职时间:</th><td><input type="text" name="hiredate" /></td></tr>
</table>
<button >添加</button>
</form>
</div>
</div>
</div>
</div>
</div>
</div>
<footer class="footer">Copyright © 2019.Company name All rights reserved.<a target="_blank" href="http://sc.chinaz.com/moban/">网页模板</a></footer>
</div>
</div>
<script src="/jsp/js/jquery-3.4.1.min.js"></script>
<script src="/assets/plugins/jquery/jquery.min.js"></script>
<script src="/assets/plugins/bootstrap/js/popper.min.js"></script>
<script src="/assets/plugins/bootstrap/js/bootstrap.min.js"></script>
<script src="/jsp/js/perfect-scrollbar.jquery.min.js"></script>
<script src="/jsp/js/waves.js"></script>
<script src="/jsp/js/sidebarmenu.js"></script>
<script src="/jsp/js/custom.min.js"></script>
</body>
</html>
4.3 修改页
<%@ page contentType="text/html;charset=UTF-8" language="java" %>
<%@ taglib prefix="c" uri="http://java.sun.com/jsp/jstl/core" %>
<%@ taglib prefix="fmt" uri="http://java.sun.com/jsp/jstl/fmt" %>
<html lang="en">
<head>
<meta charset="utf-8">
<!-- Favicon icon -->
<link rel="icon" type="image/png" sizes="16x16" href="/assets/images/favicon.png">
<title>Home</title>
<!-- Bootstrap Core CSS -->
<link href="/assets/plugins/bootstrap/css/bootstrap.min.css" rel="stylesheet">
<!-- Custom CSS -->
<link href="/jsp/css/style.css" rel="stylesheet">
<link href="/jsp/css/colors/default-dark.css" id="theme" rel="stylesheet">
</head>
<body class="fix-header card-no-border fix-sidebar">
<div class="preloader">
<div class="loader">
<div class="loader__figure"></div>
<p class="loader__label">Admin Pro</p>
</div>
</div>
<div id="main-wrapper">
<header class="topbar">
<jsp:include page="/common/header.jsp"/>
</header>
<aside class="left-sidebar">
<!-- Sidebar scroll-->
<div class="scroll-sidebar">
<!-- Sidebar navigation-->
<jsp:include page="/common/sidebar.jsp"/>
</div>
</aside>
<div class="page-wrapper">
<div class="container-fluid">
<div class="row page-titles">
<div class="col-md-5 align-self-center">
<h3 class="text-themecolor">员工信息修改</h3>
</div>
</div>
<div class="row">
<!-- column -->
<div class="col-lg-12">
<div class="card">
<div class="card-body">
<div class="table-responsive">
<form action="/updateEmp" method="post">
<table>
<tr><th>员工编号:</th><td> <input type="text" name="empNo" value="${emps.empNo}" readonly="readonly"></td></tr>
<tr> <th>姓 名 :</th><td><input type="text" name="empName" value="${emps.empName}"></td></tr>
<tr><th> 性 别 :</th><td><input type="radio" name="sex" value="0" ${emps.sex=="0"?"checked='checked'":""}>女 <input type="radio" name="sex" value="1" ${emps.sex=="1"?"checked='checked'":""}>男</td></tr>
<tr><th> 出生日期:</th><td><input type="text" name="birth" value="<fmt:formatDate value="${emps.birth}" pattern="yyyy-MM-dd"/>"/></td></tr>
<tr><th>部 门 :</th><td><select name="dept.deptName">
<c:forEach items="${depts}" var="dept">
<option value="${dept.deptName}">${dept.deptName}</option>
</c:forEach>
</select></td></tr>
<tr> <th>电 话 :</th><td><input type="text" name="phone" value="${emps.phone}"/></td></tr>
<tr> <th>家庭住址:</th><td><input type="text" name="address" value="${emps.address}"/></td></tr>
<tr> <th>岗 位 :</th> <td><input type="text" name="job"value="${emps.job}"/></td></tr>
<tr><th>入职时间:</th><td><input type="text" name="hiredate" value="<fmt:formatDate value="${emps.hiredate}" pattern="yyyy-MM-dd"/>"/></td></tr>
</table>
<button >修改</button>
</form>
</div>
</div>
</div>
</div>
</div>
</div>
<footer class="footer">Copyright © 2019.Company name All rights reserved.<a target="_blank" href="http://sc.chinaz.com/moban/">网页模板</a></footer>
</div>
</div>
<script src="/jsp/js/jquery-3.4.1.min.js"></script>
<script src="/assets/plugins/jquery/jquery.min.js"></script>
<script src="/assets/plugins/bootstrap/js/popper.min.js"></script>
<script src="/assets/plugins/bootstrap/js/bootstrap.min.js"></script>
<script src="/jsp/js/perfect-scrollbar.jquery.min.js"></script>
<script src="/jsp/js/waves.js"></script>
<script src="/jsp/js/sidebarmenu.js"></script>
<script src="/jsp/js/custom.min.js"></script>
</body>
</html>
展示页静态资源链接 提取码:wprz