【WEEK11】 【DAY4】Employee Management System Part 5【English Version】

2024.5.9 Thursday
Continued from 【WEEK11】 【DAY3】Employee Management System Part 4【English Version】

Contents

  • 10.6. Add Employee
    • 10.6.1. Modify list.html
    • 10.6.2. Modify EmployeeController.java
    • 10.6.3. Create add.html
    • 10.6.4. Restart and Run

10.6. Add Employee

10.6.1. Modify list.html

On line 53, change <h2>Section title</h2> to add an employee button.
Insert image description here

<h2><a class="btn btn-sm btn-success" th:href="@{/emp}">Add Employee</a></h2>

10.6.2. Modify EmployeeController.java

Add a new method.

package com.P14.controller;

import com.P14.dao.DepartmentDao;
import com.P14.dao.EmployeeDao;
import com.P14.pojo.Department;
import com.P14.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.PostMapping;
import org.springframework.web.bind.annotation.RequestMapping;

import java.util.Collection;

@Controller
public class EmployeeController {
    // Query all employees
    @Autowired
    EmployeeDao employeeDao;
    @Autowired  // Autowire
    DepartmentDao departmentDao;

    @RequestMapping("/emps")    // Whenever dashboard.html requests th:href="@{emps}" (line 89), it will be redirected to @RequestMapping("/emps")
    public String list(Model model){    // Then it will query all employees, and modify: how to display them on the front-end page
        Collection<Employee> employees = employeeDao.getAll();
        model.addAttribute("emps",employees);
        return "emp/list";
    }

    @GetMapping("/emp") // Get request for redirection
    public String toAddpage(Model model){
        // Retrieve information of all departments
        Collection<Department> departments = departmentDao.getDepartment();
        model.addAttribute("departments",departments);
        return "emp/add";
    }

    @PostMapping("/emp")
    public String addEmp(Employee employee){
        // Adding operation forward
        System.out.println("save=>"+employee);
        employeeDao.save(employee); // Call the underlying business method to save employee information
        return "redirect:/emps";    // After clicking "Add" on the "Add Employee" page, redirect to the "Employee Management" page
    }
}

10.6.3. Create add.html

Insert image description here
Compared with list.html, only the content within <main> needs to be modified.

<body>
   <div th:replace="~{common/commons::topbar}"></div>
   <!-- Change to insert the topbar part from commons.html -->
   <div class="container-fluid">
      <div class="row">
         <div th:replace="~{common/commons::sidebar(active='list.html')}"></div>
         <!-- Change to insert the sidebar part from commons.html -->
         <main role="main" class="col-md-9 ml-sm-auto col-lg-10 pt-3 px-4">
            <form th:action="@{/emp}" method="post">
               <div class="form-group">
                  <label>LastName</label>
                  <input type="text" name="lastName" class="form-control" placeholder="SpongeBob">
               </div>
               <div class="form-group">
                  <label>Email</label>
                  <input type="email" name="email" class="form-control" placeholder="987654321@qq.com">
               </div>
               <div class="form-group">
                  <label>Gender</label><br>
                  <div class="form-check form-check-inline">
                     <input class="form-check-input" type="radio" name="gender" value="1">
                     <label class="form-check-label">Female</label>
                  </div>
               </div>
               <div class="form-check form-check-inline">
                  <input class="form-check-input" type="radio" name="gender" value="0">
                  <label class="form-check-label">Male</label>
               </div>
               <div class="form-group">
                  <label>Department</label>
                  <select class="form-control" name="department.id">
                     <!-- We are receiving an Employee in the controller, so we need to submit one of its properties (department.id) -->
                     <option th:each="dept:${departments}" th:text="${dept.getDepartmentName()}" th:value="${dept.getId()}"></option>
                  </select>
               </div>
               <div class="form-group">
                  <label>Birth</label>
                  <input type="text" name="birth" class="form-control" placeholder="2020/07/25 18:00:00">
               </div>
               <button type="submit" class="btn btn-primary">Add</button>
            </form>
         </main>
      </div>
   </div>

   ...

</body>

10.6.4. Restart and Run

After logging in, select “Employee Management” -> “Add Employee” -> Fill in the relevant information -> Click “Add”
Insert image description here
Default page:
Insert image description here

After entering information, click “Add”:
Insert image description here
Note that the format for the addition date is yyyy/MM/dd, not yyyy-MM-dd.
Insert image description here

Console log:
Insert image description here

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:/a/612653.html

如若内容造成侵权/违法违规/事实不符,请联系我们进行投诉反馈qq邮箱809451989@qq.com,一经查实,立即删除!

相关文章

【Vue3进阶】- Pinia

什么是Pinia Pinia 是 Vue 的专属状态管理库&#xff0c;它允许你跨组件或页面共享状态。它提供了类似于 Vuex 的功能&#xff0c;但比 Vuex 更加简单和直观。 需要在多个组件之间共享状态或数据时使用 Pinia 的 store&#xff0c;这样可以避免 props 和 eventBus 等传统方法…

刷代码随想录有感(62):修建二叉搜索树

题干&#xff1a; 代码&#xff1a; class Solution { public:TreeNode* traversal(TreeNode* root, int low, int high){if(root NULL)return NULL;if(root->val < low)return traversal(root->right, low, high);if(root->val > high)return traversal(ro…

MATLAB 基于格网的点云最低点采样 (69)

MATLAB 基于格网的点云最低点采样 (69) 一、算法原理二、算法实现1.代码2.效果三、数据链接一、算法原理 最低点格网采样是一种基于点云数据的简化技术。它通过将点云数据划分为网格,并在每个网格单元中保留最低的点来实现简化。以下是该方法的步骤: 1 定义格网尺度: 选…

服务智能化公共生活场景人员检测计数,基于YOLOv9系列【yolov9/yolov9-c/yolov9-e】参数模型开发构建公共生活场景下人员检测计数识别系统

在当今社会&#xff0c;随着科技的飞速发展&#xff0c;各种智能化系统已广泛应用于各个领域&#xff0c;特别是在人员密集、流动性大的场合&#xff0c;如商场、火车站、景区等&#xff0c;智能人员检测计数系统发挥着至关重要的作用。特别是在特殊时期&#xff0c;如节假日、…

简单的神经网络

一、softmax的基本概念 我们之前学过sigmoid、relu、tanh等等激活函数&#xff0c;今天我们来看一下softmax。 先简单回顾一些其他激活函数&#xff1a; Sigmoid激活函数&#xff1a;Sigmoid函数&#xff08;也称为Logistic函数&#xff09;是一种常见的激活函数&#xff0c…

EPAI手绘建模APP动画、场景、手势操作

(15) 动画 图 299 动画控制器 ① 打开动画控制器。播放动画过程中&#xff0c;切换场景观察视角时&#xff0c;自动停止播放。动画编辑参见常用工具栏-更多-动画动画编辑器部分。 ② 关闭动画控制器。 ③ 设置动画参数&#xff1a;设置动画总帧数&#xff1b;这只帧率&#x…

从RAID 0到RAID 10:全面解析RAID技术与应用

&#x1f407;明明跟你说过&#xff1a;个人主页 &#x1f3c5;个人专栏&#xff1a;《Linux &#xff1a;从菜鸟到飞鸟的逆袭》&#x1f3c5; &#x1f516;行路有良友&#xff0c;便是天堂&#x1f516; 目录 一、前言 1、磁盘阵列简介 2、磁盘阵列诞生背景 3、硬件RA…

Spring Boot集成activiti快速入门Demo

1.什么事activiti&#xff1f; Activiti是一个工作流引擎,可以将业务系统中复杂的业务流程抽取出来,使用专门的建模语言BPMN2.0进行定义,业务流程按照预先定义的流程进行执行,实现了系统的流程流activiti进行管理,减少业务系统由于流程变更进行系统升级改造的工作量,从而提高系…

与队列和栈相关的【OJ题】

✨✨✨专栏&#xff1a;数据结构 &#x1f9d1;‍&#x1f393;个人主页&#xff1a;SWsunlight 目录 一、用队列实现栈&#xff1a; 1、2个队列的关联起来怎么由先进先出转变为先进后出&#xff1a;&#xff08;核心&#xff09; 2、认识各个函数干嘛用的&#xff1a; …

pgbackrest 备份工具使用 postgresql

为啥我会使用pgbackrest进行备份&#xff1f;因为postgresql没有自带的差异备份工具。。。而我们在生产环境上&#xff0c;一般都需要用到差异备份或者增量备份。我们的备份策略基本是&#xff0c;1天1次完整备份&#xff0c;1个小时1次差异备份。如果只需要完整备份&#xff0…

【Mac】Indesign 2023 Mac(ID2023) v18.5中文版安装教程

软件介绍 Adobe InDesign是一款由Adobe Systems开发的桌面排版软件&#xff0c;旨在用于创建、编辑和格式化印刷和数字出版物&#xff0c;如书籍、杂志、报纸、传单等。以下是一些关于Adobe InDesign的主要特点和功能&#xff1a; 1.强大的排版工具&#xff1a;InDesign提供了…

Linux的命令(第二篇)

昨天学习到了第17个命令到 rm 命令&#xff08;作用删除目录和文件&#xff09;&#xff0c;今天继续往下里面了解其他命令以及格式、选项&#xff1a; &#xff08;17&#xff09;wc命令&#xff08;此wc非wc&#xff09; 作用&#xff1a;统计行数、单词数、字符分数。 格…

JavaScript使用 BigInt

在 JavaScript 中&#xff0c;最大的安全整数是 2 的 53 次方减 1&#xff0c;即 Number.MAX_SAFE_INTEGER&#xff0c;其值为 9007199254740991。这是因为 JavaScript 中使用双精度浮点数表示数字&#xff0c;双精度浮点数的符号位占 1 位&#xff0c;指数位占 11 位&#xff…

探索计算之美:HTML CSS 计算器案例

本次案例是通过HTML和CSS&#xff0c;我们可以为计算器赋予独特的外观和功能&#xff1b; 在这个计算器中&#xff0c;你将会发现&#xff1a; 简洁清晰的界面设计&#xff0c;使用户能够轻松输入和查看计算结果。利用HTML构建的结构&#xff0c;确保页面具有良好的可访问性和…

gitee 简易使用 上传文件

Wiki - Gitee.com 官方教程 1.gitee 注册帐号 2.下载git 安装 http://git-scm.com/downloads 3. 桌面 鼠标右键 或是开始菜单 open git bash here 输入&#xff08;复制 &#xff0c;粘贴&#xff09; 运行完成后 刷新网页 下方加号即可以添加文件 上传文件 下载 教程…

前端崽的java study笔记

文章目录 basic1、sprint boot概述2、sprint boot入门3、yml 配置信息书写和获取 basic 1、sprint boot概述 sprint boot特性&#xff1a; 起步依赖&#xff08;maven坐标&#xff09;&#xff1a;解决配置繁琐的问题&#xff0c;只需要引入sprint boot起步依赖的坐标就行 自动…

【敦煌网注册/登录安全分析报告】

敦煌网注册/登录安全分析报告 前言 由于网站注册入口容易被黑客攻击&#xff0c;存在如下安全问题&#xff1a; 暴力破解密码&#xff0c;造成用户信息泄露短信盗刷的安全问题&#xff0c;影响业务及导致用户投诉带来经济损失&#xff0c;尤其是后付费客户&#xff0c;风险巨大…

基于STM32移植lvgl(V8.2)(SPI接口的LCD)

目录 概述 1 认识LVGL 1.1 LVGL官网 1.2 LVGL库文件下载 2 认识SPI接口型LCD 2.1 PIN引脚定义 2.2 MCU IO与LCD PIN对应关系 3 实现LCD驱动 3.1 使用STM32Cube配置Project 3.2 STM32Cube生成工程 4 移植LVGL 4.1 准备移植文件 4.2 添加lvgl库文件到项目 4.2.1 src下…

工作中使用Optional过滤出符合条件的数据

工作中使用Optional获取非空对象的属性 实体类Optional对非空对象的处理满足过滤条件返回的值不满足条件返回的值 实体类 package po;import lombok.AllArgsConstructor; import lombok.Data; import lombok.NoArgsConstructor;import java.io.Serializable;Data AllArgsConst…

stm32开发三、GPIO

部分引脚可容忍5V&#xff0c;容忍5V的意思是:可以在这个端口输入5V的电压&#xff0c;也认为是高电平 但是对于输出而言&#xff0c;最大就只能输出3.3V&#xff0c;因为供电就只有3.3V 具体哪些端口能容忍5V&#xff0c;可以参考一下STM32的引脚定义 不带FT的&#xff0c;就只…