Spring Boot学习笔记13——web开发08(CRUD-员工添加&修改&删除)

1. 员工添加页面跳转

1.1 要求
  1. 点击添加按钮发送get请求来到添加页面
  2. 添加完毕后发送post请求完成添加

1.2 具体实现
  1. 将“员工添加”按钮改成超链接

    <h2><a class="btn btn-sm btn-success" href="emp" th:href="@{/emp}">员工添加</a></h2>
    
  2. 将emp/list复制一份,重命名为add
    图片

  3. 将add中<main>标签的内容删除,并从bootstrap官网中拷贝form表单模板到此

    <form>
    <div class="form-group">
        <label>LastName</label>
        <input type="text" class="form-control" placeholder="zhangsan">
    </div>
    <div class="form-group">
        <label>Email</label>
        <input type="email" class="form-control" placeholder="zhangsan@atguigu.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"></label>
        </div>
        <div class="form-check form-check-inline">
            <input class="form-check-input" type="radio" name="gender"  value="0">
            <label class="form-check-label"></label>
        </div>
    </div>
    <div class="form-group">
        <label>department</label>
        <select class="form-control">
            <option>1</option>
            <option>2</option>
            <option>3</option>
            <option>4</option>
            <option>5</option>
        </select>
    </div>
    <div class="form-group">
        <label>Birth</label>
        <input type="text" class="form-control" placeholder="zhangsan">
    </div>
    <button type="submit" class="btn btn-primary">添加</button>
    </form>
    
  4. 添加控制器方法

    @GetMapping("/emp")
    public String toAddPage(){//来到员工添加页面
    
        //来到添加页面
        return "emp/add";
    }
    
  5. 修改部门
    页面中的部门区域是可变的,查出来的,需要改
    图片 控制器方法

    @Autowired
    DepartmentDao departmentDao;
    @GetMapping("/emp")
    public String toAddPage(Model model){//来到员工添加页面
    
        //来到添加页面,查出所有部门,在页面显示
        Collection<Department> departments = departmentDao.getDepartments();
        model.addAttribute("depts",departments);
        return "emp/add";
    }
    

    修改form表单

    <div class="form-group">
    		<label>department</label>
    		<!--提交的是部门id-->
    		<select class="form-control">
    			<option th:value="${dept.id}" th:each="dept:${depts}" th:text="${dept.departmentName}">1</option>
    		</select>
    	</div>
    
  6. 效果
    图片


2. 员工添加功能

2.1 修改页面元素

图片

2.2 添加方法
	//员工添加
    @PostMapping("/emp")//springmvc自动将请求和入参对象的属性进行一一绑定
    public String addEmp(Employee employee){//要求:请求参数的名称和javaBean的如惨对象中的属性名一致
        System.out.println(employee);
        //保存员工
        employeeDao.save(employee);
        //redirect:重定向到一个地址,/表示当前项目路径
        //forward:表示转发到一个地址,可以到源码ThymeleafViewResolver中了解一下
        return "redirect:/emps";
    }
2.3 日期格式化

由于生日部分的日期格式有多种,如1997/09/13,1997-09-13,1997.09.13等等,所以我们要对日期进行格式化;日期的格式化;SpringMVC将页面提交的值需要转换为指定的类型

在配置文件中添加配置,默认日期是按照/的方式

spring.mvc.date-format=yyyy-MM-dd
2.4 效果

图片


3. 编辑员工功能

3.1 修改编辑按钮

修改编辑按钮,使得发送请求时,携带被修改项的id号,这样才能目标进行修改

<a class="btn btn-sm btn-primary" th:href="@{/emp/}+${emp.id}">编辑</a>

当鼠标放在不同员工的修改按钮上时,浏览器左下角会显示请求+参数
图片


3.2 跳转到修改页面的方法
	@PutMapping("/emp/{id}")
    public String toEditPage(@PathVariable("id") Integer id, Model model){//来到修改页面,查出当前员工,在页面回显
        Employee employee=employeeDao.get(id);
        model.addAttribute("emp",employee);

        //页面要显示所有的部门列表
        Collection<Department> departments = departmentDao.getDepartments();
        model.addAttribute("depts",departments);
        //回到修改页面,注意:add是一个 修改+添加 二合一的页面
        return "emp/add";
    }

3.3 修改页面

图片

关于上面修改员工带id(EmployeeDao)

private static Integer initId = 1006;
	//无id时就进行id自增,如添加员工功能
	public void save(Employee employee){
		if(employee.getId() == null){
			employee.setId(initId++);
		}
		
	//有id则获取所带的id,如修改员工功能
		employee.setDepartment(departmentDao.getDepartment(employee.getDepartment().getId()));
		employees.put(employee.getId(), employee);
	}

图片


3.4 修改员工方法
	@PutMapping("/emp")
    public String updateEmployee(Employee employee){//修改员工,需要提交员工id
        System.out.println("修改的员工数据"+employee);
        employeeDao.save(employee);
        return "redirect:/emps";
    }

3.5 效果
修改前

图片
图片


4. 员工删除功能

4.1 修改页面

图片
图片

4.2 控制器方法
	@DeleteMapping("/emp/{id}")
    public String deleteEmployee(@PathVariable("id") Integer id){//员工删除
        employeeDao.delete(id);
        return "redirect:/emps";
    }
4.3 修改配置文件属性

我们在页面中使用了HiddenHttpMethodFilter将post请求转换成delete,但是springboot的配置中自设置是false,即默认关闭,我们使用起来是无效的,点击删除后会出现405,这时我们就要去配置文件中进行设置为true,使其生效

spring.mvc.hiddenmethod.filter.enabled=true

该SpringBoot学习笔记学习自雷神前辈,是对知识点的整理和自我认识的梳理,如有不当之处,欢迎指出

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值