springBoot之员工修改功能

几乎所有的增删改功能大致都分为这两步:一、后台写controller 二、前台页面的取值。接下来就先说后台代码:

//来到修改页面查出要修改的员工id,通过查询其他信息
@GetMapping("/emp/{id}")
public String toUpdate(@PathVariable("id") Integer id,Model model){
    Employee employee=employeeDao.get(id);
    model.addAttribute("emp",employee);
    //先获取所有部门,在页面进行验证,只显示对应id的
    Collection<Department>departments=departmentDao.getDepartments();
    model.addAttribute("depts",departments);
    return "emp/add";
}
@PutMapping("/emp")
public String update(Employee employee){
    employeeDao.save(employee);
    return "redirect:/emps";
}

两个controller,一个是get请求的表示要跳转到某个页面,put请求为要进行修改功能,之所以要跳到add页面是因为修改和添加页面重用性很高,几乎不用改什么,除了最后的按钮。put之后之所以重定向到/emps请求是因为要返回list页面。

再看前台如何取值:

先从list页面看:

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

一个编辑按钮,映射的controller里的get类型的/emp/{id}请求由于a标签默认是get请求所有不用写请求方式;由于emp.id是从属性中取值所以要用${}

这是从list页面进入编辑页面;再看编辑页面是如何取值的。

<form th:action="@{/emp}" method="post">
    <!--发送put请求的格式,修改员工数据-->
    <!--
    1、SpringMVC中配置HiddenHttpMethodFilter;(SpringBoot自动配置好的)
    2、页面创建一个post表单
    3、创建一个input项,name="_method";值就是我们指定的请求方式
    -->

    <input type="hidden" name="_method" value="put" th:if="${emp!=null}"/>
    <!--利用隐藏框传id 如果emp不是null则值是emp.id-->
    <input type="hidden" name="id" th:if="${emp!=null}" th:value="${emp.id}">
    <div class="form-group">
        <label>LastName</label>
        <!--判断如果emp不为null则lastNamed的值为emp.lastName-->
        <input name="lastName" type="text" class="form-control" placeholder="zhangsan" th:value="${emp!=null}?${emp.lastName}">
    </div>
<!--提交的是部门的id-->
<select class="form-control" name="department.id">
    <!--在emp不等于null的时候,利用selected判断选择出emp.id与dept.id相等的部门-->
    <option th:selected="${emp!=null}?${dept.id == emp.department.id}" th:value="${dept.id}" th:each="dept:${depts}" th:text="${dept.departmentName}">1</option>
</select>

首先看from表单先映射的post请求,然后看<input type="hidden" name="_method" value="put" th:if="${emp!=null}"/>这段表示如果emp不为null则将请求方式改为put。

<option th:selected="${emp!=null}?${dept.id == emp.department.id}" th:value="${dept.id}" th:each="dept:${depts}" th:text="${dept.departmentName}">1</option>

表示在选择部门时候如果emp不为null那么久显示与emp.id相等的部门。

  • 1
    点赞
  • 7
    收藏
    觉得还不错? 一键收藏
  • 2
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 2
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值