生活随笔
收集整理的这篇文章主要介绍了
员工管理系统---SpringBoot
小编觉得挺不错的,现在分享给大家,帮大家做个参考.
目录结构
全部代码
package com
.kuang
.config
;import org
.springframework
.web
.servlet
.HandlerInterceptor
;import javax
.servlet
.http
.HttpServletRequest
;
import javax
.servlet
.http
.HttpServletResponse
;
public class LoginHandlerInterceptor implements HandlerInterceptor {@Overridepublic boolean preHandle(HttpServletRequest request
, HttpServletResponse response
, Object handler
) throws Exception
{Object loginuser
= request
.getSession().getAttribute("loginuser");if(loginuser
==null
){request
.setAttribute("msg", "没有权限,请先登录");request
.getRequestDispatcher("/index.html").forward(request
, response
);return false;}else {return true;}}
}
package com
.kuang
.config
;import org
.springframework
.boot
.autoconfigure
.web
.WebProperties
;
import org
.springframework
.util
.StringUtils
;
import org
.springframework
.web
.servlet
.LocaleResolver
;import javax
.servlet
.http
.HttpServletRequest
;
import javax
.servlet
.http
.HttpServletResponse
;
import java
.util
.Locale
;
public class MyLocaleResolver implements LocaleResolver {@Overridepublic Locale
resolveLocale(HttpServletRequest request
) {String lan
= request
.getParameter("l");Locale locale
= Locale
.getDefault(); if (!StringUtils
.isEmpty(lan
)) {String
[] split
= lan
.split("_");locale
= new Locale(split
[0], split
[1]);}return locale
;}@Overridepublic void setLocale(HttpServletRequest request
, HttpServletResponse response
, Locale locale
) {}
}
package com
.kuang
.config
;import org
.springframework
.context
.annotation
.Bean
;
import org
.springframework
.context
.annotation
.Configuration
;
import org
.springframework
.web
.servlet
.LocaleResolver
;
import org
.springframework
.web
.servlet
.config
.annotation
.InterceptorRegistry
;
import org
.springframework
.web
.servlet
.config
.annotation
.ViewControllerRegistry
;
import org
.springframework
.web
.servlet
.config
.annotation
.WebMvcConfigurer
;@Configuration
public class MyMvcConfig implements WebMvcConfigurer {@Overridepublic void addViewControllers(ViewControllerRegistry registry
) {registry
.addViewController("/").setViewName("index");registry
.addViewController("/index.html").setViewName("index");registry
.addViewController("/main.html").setViewName("dashboard");}@Beanpublic LocaleResolver
localeResolver(){return new MyLocaleResolver();}@Overridepublic void addInterceptors(InterceptorRegistry registry
) {registry
.addInterceptor(new LoginHandlerInterceptor()).addPathPatterns("/**").excludePathPatterns("/index.html","/","/user/login","/css/**","/js/**","/img/**");}}
package com
.kuang
.controller
;import com
.kuang
.dao
.DepartmentDao
;
import com
.kuang
.dao
.EmployeeDao
;
import com
.kuang
.pojo
.Department
;
import com
.kuang
.pojo
.Employee
;
import org
.springframework
.beans
.factory
.annotation
.Autowired
;
import org
.springframework
.stereotype
.Controller
;
import org
.springframework
.ui
.Model
;
import org
.springframework
.web
.bind
.annotation
.GetMapping
;
import org
.springframework
.web
.bind
.annotation
.PathVariable
;
import org
.springframework
.web
.bind
.annotation
.PostMapping
;
import org
.springframework
.web
.bind
.annotation
.RequestMapping
;import java
.util
.Collection
;@Controller
public class EmployeeController {@AutowiredDepartmentDao departmentDao
;@AutowiredEmployeeDao employeeDao
;@RequestMapping("/emps")public String
list(Model model
) {Collection
<Employee> employees
= employeeDao
.getAll();model
.addAttribute("emps", employees
);return "emp/list";}@GetMapping("/emp")public String
toAdd(Model model
) {Collection
<Department> departments
= departmentDao
.getDepartment();model
.addAttribute("departments", departments
);return "emp/add";}@PostMapping("/emp")public String
add(Employee employee
) {System
.out
.println(employee
);
employeeDao
.save(employee
);return "redirect:/emps";}@GetMapping("/upemp/{id}")public String
toupdataEmp(@PathVariable("id") Integer id
, Model model
) {Employee employee
= employeeDao
.getEmployeeById(id
);model
.addAttribute("emp", employee
);Collection
<Department> departments
= departmentDao
.getDepartment();model
.addAttribute("departments", departments
);return "emp/update";}@PostMapping("/updateEmp")public String
updataEmp(Employee employee
) {employeeDao
.save(employee
);return "redirect:/emps";}@GetMapping("/deleteEmp/{id}")public String
deleteEmp(@PathVariable("id") int id
) {employeeDao
.delete(id
);return "redirect:/emps";}}
package com
.kuang
.controller
;import org
.springframework
.stereotype
.Controller
;
import org
.springframework
.ui
.Model
;
import org
.springframework
.util
.StringUtils
;
import org
.springframework
.web
.bind
.annotation
.RequestMapping
;
import org
.springframework
.web
.bind
.annotation
.RequestParam
;import javax
.servlet
.http
.HttpSession
;@Controller
public class LoginController {@RequestMapping("/user/login")public String
login(@RequestParam("username") String username
,@RequestParam("password") String password
,Model model
,HttpSession session
) {if (!StringUtils
.isEmpty(username
) && "123456".equals(password
)) {session
.setAttribute("loginuser", username
);return "redirect:/main.html";} else {model
.addAttribute("msg", "用户名或者密码错误");return "index";}}@RequestMapping("/user/loginout")public String
loginout(HttpSession session
) {session
.invalidate();return "redirect:/index/html";}}
package com
.kuang
.dao
;import com
.kuang
.pojo
.Department
;
import org
.springframework
.stereotype
.Repository
;import java
.util
.Collection
;
import java
.util
.HashMap
;
import java
.util
.Map
;@Repository
public class DepartmentDao {private static Map
<Integer, Department> departments
= null
;static {departments
= new HashMap<Integer, Department>();departments
.put(101, new Department(101, "教学部"));departments
.put(102, new Department(102, "市场部"));departments
.put(103, new Department(103, "教研部"));departments
.put(104, new Department(104, "运营部"));departments
.put(105, new Department(105, "后勤部"));}public Collection
<Department> getDepartment(){return departments
.values();}public Department
getDepartmentById(Integer id
){return departments
.get(id
);}}
package com
.kuang
.dao
;import com
.kuang
.pojo
.Department
;
import com
.kuang
.pojo
.Employee
;
import org
.springframework
.beans
.factory
.annotation
.Autowired
;
import org
.springframework
.stereotype
.Repository
;import java
.util
.Collection
;
import java
.util
.HashMap
;
import java
.util
.Map
;@Repository
public class EmployeeDao {private static Map
<Integer, Employee> employees
= null
;@Autowiredprivate DepartmentDao departmentDao
;static {employees
= new HashMap<Integer, Employee>();employees
.put(1001, new Employee(1001, "AA", "2921625927@qq.com", 1, new Department(101, "教学部")));employees
.put(1002, new Employee(1002, "BB", "4534545434@qq.com", 0, new Department(102, "市场部")));employees
.put(1003, new Employee(1003, "CC", "7767546755@qq.com", 1, new Department(103, "教研部")));employees
.put(1004, new Employee(1004, "DD", "7654788797@qq.com", 0, new Department(104, "运营部")));employees
.put(1005, new Employee(1005, "EE", "4343546768@qq.com", 1, new Department(105, "后勤部")));}private static Integer initId
= 1006;public void save(Employee employee
) {if (employee
.getId() == null
) {employee
.setId(initId
++);}employee
.setDepartment(departmentDao
.getDepartmentById(employee
.getDepartment().getId()));employees
.put(employee
.getId(), employee
);}public Collection
<Employee> getAll(){return employees
.values();}public Employee
getEmployeeById(Integer id
){return employees
.get(id
);}public void delete(Integer id
){employees
.remove(id
);}
}
package com
.kuang
.pojo
;import lombok
.AllArgsConstructor
;
import lombok
.Data
;
import lombok
.NoArgsConstructor
;
import org
.springframework
.beans
.factory
.annotation
.Autowired
;@Data
@AllArgsConstructor
@NoArgsConstructor
public class Department {private Integer id
;private String departmentName
;
}
package com
.kuang
.pojo
;import lombok
.AllArgsConstructor
;
import lombok
.Data
;
import lombok
.NoArgsConstructor
;import java
.util
.Date
;
@Data
@NoArgsConstructor
public class Employee {private Integer id
;private String lastName
;private String email
;private Integer gender
;private Department department
;private Date birth
;public Employee(Integer id
, String lastName
, String email
, Integer gender
, Department department
) {this.id
= id
;this.lastName
= lastName
;this.email
= email
;this.gender
= gender
;this.department
= department
;this.birth
=new Date();}
}
<!DOCTYPE html>
<html lang="en" xmlns:th="http://www.thymeleaf.org">
<nav class="navbar navbar-dark sticky-top bg-dark flex-md-nowrap p-0" th:fragment="topbar"><a class="navbar-brand col-sm-3 col-md-2 mr-0" href="http://getbootstrap.com/docs/4.0/examples/dashboard/#">[[${session.loginuser}]]
</a><input class="form-control form-control-dark w-100" type="text" placeholder="Search" aria-label="Search"><ul class="navbar-nav px-3"><li class="nav-item text-nowrap"><a class="nav-link" th:href="@{/user/loginout}">注销
</a></li></ul>
</nav>
<nav class="col-md-2 d-none d-md-block bg-light sidebar" th:fragment="sidebar"><div class="sidebar-sticky"><ul class="nav flex-column"><li class="nav-item"><a th:class="${active=='main.html'?'nav-link active':'nav-link'}" th:href="@{/templates/index.html}"><svg xmlns="http://www.w3.org/2000/svg" width="24" height="24" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round" class="feather feather-home"><path d="M3 9l9-7 9 7v11a2 2 0 0 1-2 2H5a2 2 0 0 1-2-2z"></path><polyline points="9 22 9 12 15 12 15 22"></polyline></svg>首页
<span class="sr-only">(current)
</span></a></li><li class="nav-item"><a class="nav-link" href="http://getbootstrap.com/docs/4.0/examples/dashboard/#"><svg xmlns="http://www.w3.org/2000/svg" width="24" height="24" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round" class="feather feather-file"><path d="M13 2H6a2 2 0 0 0-2 2v16a2 2 0 0 0 2 2h12a2 2 0 0 0 2-2V9z"></path><polyline points="13 2 13 9 20 9"></polyline></svg>Orders
</a></li><li class="nav-item"><a class="nav-link" href="http://getbootstrap.com/docs/4.0/examples/dashboard/#"><svg xmlns="http://www.w3.org/2000/svg" width="24" height="24" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round" class="feather feather-shopping-cart"><circle cx="9" cy="21" r="1"></circle><circle cx="20" cy="21" r="1"></circle><path d="M1 1h4l2.68 13.39a2 2 0 0 0 2 1.61h9.72a2 2 0 0 0 2-1.61L23 6H6"></path></svg>Products
</a></li><li class="nav-item"><a th:class="${active=='list.html'?'nav-link active':'nav-link'}" th:href="@{/emps}"><svg xmlns="http://www.w3.org/2000/svg" width="24" height="24" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round" class="feather feather-users"><path d="M17 21v-2a4 4 0 0 0-4-4H5a4 4 0 0 0-4 4v2"></path><circle cx="9" cy="7" r="4"></circle><path d="M23 21v-2a4 4 0 0 0-3-3.87"></path><path d="M16 3.13a4 4 0 0 1 0 7.75"></path></svg>员工管理
</a></li><li class="nav-item"><a class="nav-link" href="http://getbootstrap.com/docs/4.0/examples/dashboard/#"><svg xmlns="http://www.w3.org/2000/svg" width="24" height="24" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round" class="feather feather-bar-chart-2"><line x1="18" y1="20" x2="18" y2="10"></line><line x1="12" y1="20" x2="12" y2="4"></line><line x1="6" y1="20" x2="6" y2="14"></line></svg>Reports
</a></li><li class="nav-item"><a class="nav-link" href="http://getbootstrap.com/docs/4.0/examples/dashboard/#"><svg xmlns="http://www.w3.org/2000/svg" width="24" height="24" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round" class="feather feather-layers"><polygon points="12 2 2 7 12 12 22 7 12 2"></polygon><polyline points="2 17 12 22 22 17"></polyline><polyline points="2 12 12 17 22 12"></polyline></svg>Integrations
</a></li></ul><h6 class="sidebar-heading d-flex justify-content-between align-items-center px-3 mt-4 mb-1 text-muted"><span>Saved reports
</span><a class="d-flex align-items-center text-muted" href="http://getbootstrap.com/docs/4.0/examples/dashboard/#"><svg xmlns="http://www.w3.org/2000/svg" width="24" height="24" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round" class="feather feather-plus-circle"><circle cx="12" cy="12" r="10"></circle><line x1="12" y1="8" x2="12" y2="16"></line><line x1="8" y1="12" x2="16" y2="12"></line></svg></a></h6><ul class="nav flex-column mb-2"><li class="nav-item"><a class="nav-link" href="http://getbootstrap.com/docs/4.0/examples/dashboard/#"><svg xmlns="http://www.w3.org/2000/svg" width="24" height="24" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round" class="feather feather-file-text"><path d="M14 2H6a2 2 0 0 0-2 2v16a2 2 0 0 0 2 2h12a2 2 0 0 0 2-2V8z"></path><polyline points="14 2 14 8 20 8"></polyline><line x1="16" y1="13" x2="8" y2="13"></line><line x1="16" y1="17" x2="8" y2="17"></line><polyline points="10 9 9 9 8 9"></polyline></svg>Current month
</a></li><li class="nav-item"><a class="nav-link" href="http://getbootstrap.com/docs/4.0/examples/dashboard/#"><svg xmlns="http://www.w3.org/2000/svg" width="24" height="24" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round" class="feather feather-file-text"><path d="M14 2H6a2 2 0 0 0-2 2v16a2 2 0 0 0 2 2h12a2 2 0 0 0 2-2V8z"></path><polyline points="14 2 14 8 20 8"></polyline><line x1="16" y1="13" x2="8" y2="13"></line><line x1="16" y1="17" x2="8" y2="17"></line><polyline points="10 9 9 9 8 9"></polyline></svg>Last quarter
</a></li><li class="nav-item"><a class="nav-link" href="http://getbootstrap.com/docs/4.0/examples/dashboard/#"><svg xmlns="http://www.w3.org/2000/svg" width="24" height="24" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round" class="feather feather-file-text"><path d="M14 2H6a2 2 0 0 0-2 2v16a2 2 0 0 0 2 2h12a2 2 0 0 0 2-2V8z"></path><polyline points="14 2 14 8 20 8"></polyline><line x1="16" y1="13" x2="8" y2="13"></line><line x1="16" y1="17" x2="8" y2="17"></line><polyline points="10 9 9 9 8 9"></polyline></svg>Social engagement
</a></li><li class="nav-item"><a class="nav-link" href="http://getbootstrap.com/docs/4.0/examples/dashboard/#"><svg xmlns="http://www.w3.org/2000/svg" width="24" height="24" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round" class="feather feather-file-text"><path d="M14 2H6a2 2 0 0 0-2 2v16a2 2 0 0 0 2 2h12a2 2 0 0 0 2-2V8z"></path><polyline points="14 2 14 8 20 8"></polyline><line x1="16" y1="13" x2="8" y2="13"></line><line x1="16" y1="17" x2="8" y2="17"></line><polyline points="10 9 9 9 8 9"></polyline></svg>Year-end sale
</a></li></ul></div>
</nav></html>
<!DOCTYPE html>
<html lang="en" xmlns:th="http://www.thymeleaf.org"><head><meta http-equiv="Content-Type" content="text/html; charset=UTF-8"><meta name="viewport" content="width=device-width, initial-scale=1, shrink-to-fit=no"><meta name="description" content=""><meta name="author" content=""><title>Dashboard Template for Bootstrap
</title><link th:href="@{/css/bootstrap.min.css}" rel="stylesheet"><link th:href="@{/css/dashboard.css}" rel="stylesheet"><style type="text/css">@-webkit-keyframes chartjs-render-animation {from {opacity: 0.99}to {opacity: 1}}@keyframes chartjs-render-animation {from {opacity: 0.99}to {opacity: 1}}.chartjs-render-monitor {-webkit-animation: chartjs-render-animation 0.001s;animation: chartjs-render-animation 0.001s;}</style>
</head><body>
<div th:replace="~{commons/commons::topbar}"></div><div class="container-fluid"><div class="row"><div th:replace="~{commons/commons::sidebar(active='list.html')}"></div><main role="main" class="col-md-9 ml-sm-auto col-lg-10 pt-3 px-4"><form class="form-horizontal" th:action="@{/emp}" method="post"><div class="form-group"><label class="col-sm-2 control-label">名字
</label><div class="col-sm-10"><input type="text" class="form-control" placeholder="张三" name="lastName"></div></div><div class="form-group"><label class="col-sm-2 control-label">邮件
</label><div class="col-sm-10"><input type="email" class="form-control" placeholder="1234567456@qq.com" name="email"></div></div><div class="form-group"><label class="col-sm-2 control-label">性别
</label><div class="col-sm-offset-2 col-sm-10"><label><input type="radio" name="gender" checked value="1"> 男
</label> <label><input type="radio" name="gender" value="0"> 女
</label></div></div><div class="form-group"><label class="col-sm-2 control-label">部门
</label><div class="col-sm-10"><select class="form-control" name="department.id"><option th:each="dept:${departments}" th:text="${dept.getDepartmentName()}" th:value="${dept.getId()}"></option></select></div></div><div class="form-group"><label class="col-sm-2 control-label">生日
</label><div class="col-sm-10"><input type="text" class="form-control" placeholder="2000/11/11" name="birth"></div></div><div class="form-group"><div class="col-sm-offset-2 col-sm-10"><button class="btn btn-sm btn-success" type="submit">添加
</button></div></div></form></main></div>
</div>
<script type="text/javascript" src="/js/jquery-3.2.1.slim.min.js"></script>
<script type="text/javascript" src="/js/popper.min.js"></script>
<script type="text/javascript" src="/js/bootstrap.min.js"></script>
<script type="text/javascript" src="/js/feather.min.js"></script>
<script>feather.replace()
</script>
<script type="text/javascript" src="/js/Chart.min.js"></script>
<script>var ctx = document.getElementById("myChart");var myChart = new Chart(ctx, {type: 'line',data: {labels: ["Sunday", "Monday", "Tuesday", "Wednesday", "Thursday", "Friday", "Saturday"],datasets: [{data: [15339, 21345, 18483, 24003, 23489, 24092, 12034],lineTension: 0,backgroundColor: 'transparent',borderColor: '#007bff',borderWidth: 4,pointBackgroundColor: '#007bff'}]},options: {scales: {yAxes: [{ticks: {beginAtZero: false}}]},legend: {display: false,}}});
</script></body></html>
<!DOCTYPE html>
<html lang="en" xmlns:th="http://www.thymeleaf.org"><head><meta http-equiv="Content-Type" content="text/html; charset=UTF-8"><meta name="viewport" content="width=device-width, initial-scale=1, shrink-to-fit=no"><meta name="description" content=""><meta name="author" content=""><title>Dashboard Template for Bootstrap
</title><link th:href="@{/css/bootstrap.min.css}" rel="stylesheet"><link th:href="@{/css/dashboard.css}" rel="stylesheet"><style type="text/css">@-webkit-keyframes chartjs-render-animation {from {opacity: 0.99}to {opacity: 1}}@keyframes chartjs-render-animation {from {opacity: 0.99}to {opacity: 1}}.chartjs-render-monitor {-webkit-animation: chartjs-render-animation 0.001s;animation: chartjs-render-animation 0.001s;}</style>
</head><body>
<div th:replace="~{commons/commons::topbar}"> </div><div class="container-fluid"><div class="row"><div th:replace="~{commons/commons::sidebar(active='list.html')}"></div><main role="main" class="col-md-9 ml-sm-auto col-lg-10 pt-3 px-4"><form class="form-inline" style="float: left;"><h2>员工列表
</h2><p style="width: 650px;"></p><a class="btn btn-sm btn-success" th:href="@{/emp}">添加
</a></form><div class="table-responsive"><table class="table table-striped table-sm"><thead><tr><th>编号
</th><th>姓名
</th><th>邮箱
</th><th>性别
</th><th>部门
</th><th>生日
</th><th>操作
</th></tr></thead><tbody><tr th:each="emp:${emps}"><td th:text="${emp.getId()}"></td><td th:text="${emp.getLastName()}"></td><td th:text="${emp.getEmail()}"></td><td th:text="${emp.getGender()==0?'女':'男'}"></td><td th:text="${emp.getDepartment().getDepartmentName()}"></td><td th:text="${#dates.format(emp.getBirth(),'yyyy-MM-dd')}"></td><td><a class="btn btn-sm btn-primary" th:href="@{/upemp/}+${emp.getId()}">编辑
</a><a class="btn btn-sm btn-danger" th:href="@{/deleteEmp/}+${emp.getId()}">删除
</a></td></tr></tbody></table></div></main></div>
</div>
<script type="text/javascript" src="/js/jquery-3.2.1.slim.min.js"></script>
<script type="text/javascript" src="/js/popper.min.js"></script>
<script type="text/javascript" src="/js/bootstrap.min.js"></script>
<script type="text/javascript" src="/js/feather.min.js"></script>
<script>feather.replace()
</script>
<script type="text/javascript" src="asserts/js/Chart.min.js"></script>
<script>var ctx = document.getElementById("myChart");var myChart = new Chart(ctx, {type: 'line',data: {labels: ["Sunday", "Monday", "Tuesday", "Wednesday", "Thursday", "Friday", "Saturday"],datasets: [{data: [15339, 21345, 18483, 24003, 23489, 24092, 12034],lineTension: 0,backgroundColor: 'transparent',borderColor: '#007bff',borderWidth: 4,pointBackgroundColor: '#007bff'}]},options: {scales: {yAxes: [{ticks: {beginAtZero: false}}]},legend: {display: false,}}});
</script></body></html>
<!DOCTYPE html>
<html lang="en" xmlns:th="http://www.thymeleaf.org"><head><meta http-equiv="Content-Type" content="text/html; charset=UTF-8"><meta name="viewport" content="width=device-width, initial-scale=1, shrink-to-fit=no"><meta name="description" content=""><meta name="author" content=""><title>Dashboard Template for Bootstrap
</title><link th:href="@{/css/bootstrap.min.css}" rel="stylesheet"><link th:href="@{ /css/dashboard.css}" rel="stylesheet"><style type="text/css">@-webkit-keyframes chartjs-render-animation {from {opacity: 0.99}to {opacity: 1}}@keyframes chartjs-render-animation {from {opacity: 0.99}to {opacity: 1}}.chartjs-render-monitor {-webkit-animation: chartjs-render-animation 0.001s;animation: chartjs-render-animation 0.001s;}</style>
</head><body>
<div th:replace="~{commons/commons::topbar}"></div><div class="container-fluid"><div class="row"><div th:replace="~{commons/commons::sidebar(active='list.html')}"></div><main role="main" class="col-md-9 ml-sm-auto col-lg-10 pt-3 px-4"><form class="form-horizontal" th:action="@{/updateEmp}" method="post"><input type="hidden" name="id" th:value="${emp.getId()}" ><div class="form-group"><label class="col-sm-2 control-label">名字
</label><div class="col-sm-10"><input type="text" class="form-control" name="lastName" th:value="${emp.getLastName()}"></div></div><div class="form-group"><label class="col-sm-2 control-label">邮件
</label><div class="col-sm-10"><input type="email" class="form-control" th:value="${emp.getEmail()}" name="email"></div></div><div class="form-group"><label class="col-sm-2 control-label">性别
</label><div class="col-sm-offset-2 col-sm-10"><label><input th:checked="${emp.getGender()==1}" type="radio" name="gender" checked value="1"> 男
</label> <label><input th:checked="${emp.getGender()==0}" type="radio" name="gender" value="0"> 女
</label></div></div><div class="form-group"><label class="col-sm-2 control-label">部门
</label><div class="col-sm-10"><select class="form-control" name="department.id"><option th:selected="${emp.getDepartment().getId()==dept.getId()}" th:each="dept:${departments}" th:text="${dept.getDepartmentName()}" th:value="${dept.getId()}"></option></select></div></div><div class="form-group"><label class="col-sm-2 control-label">生日
</label><div class="col-sm-10"><input th:value="${#dates.format(emp.getBirth(),'yyyy/MM/dd')}" type="text" class="form-control" name="birth"></div></div><div class="form-group"><div class="col-sm-offset-2 col-sm-10"><button class="btn btn-sm btn-success" type="submit">修改
</button></div></div></form></main></div>
</div>
<script type="text/javascript" src="/js/jquery-3.2.1.slim.min.js"></script>
<script type="text/javascript" src="/js/popper.min.js"></script>
<script type="text/javascript" src="/js/bootstrap.min.js"></script>
<script type="text/javascript" src="/js/feather.min.js"></script>
<script>feather.replace()
</script>
<script type="text/javascript" src="/js/Chart.min.js"></script>
<script>var ctx = document.getElementById("myChart");var myChart = new Chart(ctx, {type: 'line',data: {labels: ["Sunday", "Monday", "Tuesday", "Wednesday", "Thursday", "Friday", "Saturday"],datasets: [{data: [15339, 21345, 18483, 24003, 23489, 24092, 12034],lineTension: 0,backgroundColor: 'transparent',borderColor: '#007bff',borderWidth: 4,pointBackgroundColor: '#007bff'}]},options: {scales: {yAxes: [{ticks: {beginAtZero: false}}]},legend: {display: false,}}});
</script></body></html>
<!DOCTYPE html>
<html lang="en" xmlns:th="http://www.thymeleaf.org">
<head><meta http-equiv="Content-Type" content="text/html; charset=UTF-8"><meta name="viewport" content="width=device-width, initial-scale=1, shrink-to-fit=no"><meta name="description" content=""><meta name="author" content=""><title>Dashboard Template for Bootstrap
</title><link th:href="@{/css/bootstrap.min.css}" rel="stylesheet"><link th:href="@{/css/dashboard.css}" rel="stylesheet"><style type="text/css">@-webkit-keyframes chartjs-render-animation {from {opacity: 0.99}to {opacity: 1}}@keyframes chartjs-render-animation {from {opacity: 0.99}to {opacity: 1}}.chartjs-render-monitor {-webkit-animation: chartjs-render-animation 0.001s;animation: chartjs-render-animation 0.001s;}</style>
</head><body>
<div th:replace="~{commons/commons::topbar}"> </div><div class="container-fluid"><div class="row"><div th:replace="~{commons/commons::sidebar(active='main.html')}"></div><main role="main" class="col-md-9 ml-sm-auto col-lg-10 pt-3 px-4"><div class="chartjs-size-monitor" style="position: absolute; left: 0px; top: 0px; right: 0px; bottom: 0px; overflow: hidden; pointer-events: none; visibility: hidden; z-index: -1;"><div class="chartjs-size-monitor-expand" style="position:absolute;left:0;top:0;right:0;bottom:0;overflow:hidden;pointer-events:none;visibility:hidden;z-index:-1;"><div style="position:absolute;width:1000000px;height:1000000px;left:0;top:0"></div></div><div class="chartjs-size-monitor-shrink" style="position:absolute;left:0;top:0;right:0;bottom:0;overflow:hidden;pointer-events:none;visibility:hidden;z-index:-1;"><div style="position:absolute;width:200%;height:200%;left:0; top:0"></div></div></div><div class="d-flex justify-content-between flex-wrap flex-md-nowrap align-items-center pb-2 mb-3 border-bottom"><h1 class="h2">Dashboard
</h1><div class="btn-toolbar mb-2 mb-md-0"><div class="btn-group mr-2"><button class="btn btn-sm btn-outline-secondary">Share
</button><button class="btn btn-sm btn-outline-secondary">Export
</button></div><button class="btn btn-sm btn-outline-secondary dropdown-toggle"><svg xmlns="http://www.w3.org/2000/svg" width="24" height="24" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round" class="feather feather-calendar"><rect x="3" y="4" width="18" height="18" rx="2" ry="2"></rect><line x1="16" y1="2" x2="16" y2="6"></line><line x1="8" y1="2" x2="8" y2="6"></line><line x1="3" y1="10" x2="21" y2="10"></line></svg>This week
</button></div></div><canvas class="my-4 chartjs-render-monitor" id="myChart" width="1076" height="454" style="display: block; width: 1076px; height: 454px;"></canvas></main></div>
</div>
<script type="text/javascript" src="/js/jquery-3.2.1.slim.min.js" ></script>
<script type="text/javascript" src="/js/popper.min.js" ></script>
<script type="text/javascript" src="/js/bootstrap.min.js" ></script>
<script type="text/javascript" src="/js/feather.min.js" ></script>
<script>feather.replace()
</script>
<script type="text/javascript" src="/js/Chart.min.js" ></script>
<script>var ctx = document.getElementById("myChart");var myChart = new Chart(ctx, {type: 'line',data: {labels: ["Sunday", "Monday", "Tuesday", "Wednesday", "Thursday", "Friday", "Saturday"],datasets: [{data: [15339, 21345, 18483, 24003, 23489, 24092, 12034],lineTension: 0,backgroundColor: 'transparent',borderColor: '#007bff',borderWidth: 4,pointBackgroundColor: '#007bff'}]},options: {scales: {yAxes: [{ticks: {beginAtZero: false}}]},legend: {display: false,}}});
</script></body></html>
<!DOCTYPE html>
<html lang="en" xmlns:th="http://www.thmeleaf.org"><head><meta http-equiv="Content-Type" content="text/html; charset=UTF-8"><meta name="viewport" content="width=device-width, initial-scale=1, shrink-to-fit=no"><meta name="description" content=""><meta name="author" content=""><title>Signin Template for Bootstrap
</title><link th:href="@{/css/bootstrap.min.css}" rel="stylesheet"><link th:href="@{/css/signin.css}" rel="stylesheet"></head><body class="text-center"><form class="form-signin" th:action="@{/user/login}"><img class="mb-4" th:src="@{/img/bootstrap-solid.svg}" alt="" width="72" height="72"><h1 class="h3 mb-3 font-weight-normal" th:text="#{login.tip}">Please sign in
</h1><p style="color: red" th:text="${msg}" th:if="${not #strings.isEmpty(msg)}"></p><input type="text" name="username" class="form-control" th:placeholder="#{login.username}" required="" autofocus=""><input type="password" name="password" class="form-control" th:placeholder="#{login.password}" required=""><div class="checkbox mb-3"><label><input type="checkbox" value="remember-me" th:text="#{login.remember}"></label></div><button class="btn btn-lg btn-primary btn-block" type="submit">[[#{login.btn}]]
</button><p class="mt-5 mb-3 text-muted">© 2017-2018
</p><a class="btn btn-sm" th:href="@{/index.html(l='zh_CN')}">中文
</a><a class="btn btn-sm" th:href="@{/index.html(l='en_US')}">English
</a></form></body></html>
总结
以上是生活随笔为你收集整理的员工管理系统---SpringBoot的全部内容,希望文章能够帮你解决所遇到的问题。
如果觉得生活随笔网站内容还不错,欢迎将生活随笔推荐给好友。