SpringMVC_14_RESTFUL_CRUD(五)实现修改操作PUT

本文介绍了如何在SpringMVC中实现RESTFUL CRUD操作的第五步——PUT修改操作。首先,通过点击修改链接将员工数据放入request域,然后在input.jsp显示原有数据而不显示lastName字段。接着,创建处理PUT请求的handler方法,并利用@ModelAttribute避免因新实例化对象导致的id丢失问题,确保成功更新数据库中的记录。
摘要由CSDN通过智能技术生成

完成了DELETE删除操作,最后我们一鼓作气 完成修改操作吧!

修改操作,点击修改功能的< a>标签后,在handler方法中根据id找到当前Employee的所有数据,放在request域中,转到input.jsp页面中,这样input.jsp就能直接显示原来的数据,而不是之前的注册界面啥内容都没有填写。修改完毕这时提交方法是PUT,需要写一个新的handler方法处理PUT操作,最后重定向到list.jsp即可。那这里需要注意的是,修改的时候不能修改lastName这个属性,所有修改界面不能显示这个text。

一、先写好list.jsp页面中的修改功能的< a>标签 的href和处理方法

<td><a href="emp/${emp.id}">Edit</a></td>  //这里需要当前的id,方便根据id查找

这一步跳转到input.jsp并且是当前Employee的数据,但是不会显示lastName.

//以下这个方法的目的是当你想要修改的时候,显示出原始数据
@RequestMapping(value="/emp/{id}",method = RequestMethod.GET)
public String input(@PathVariable("id") Integer id ,Map<String,Object> map){
   
    map.put("employee",employeeDao.get(id));
    map.put("departments",departmentDao.getDepartments());
    return "input";
}

二、input.jsp判断为修改还是添加操作

<c:if test="${employee.id==null}">
<!--Path 属性对应html表单标签的name属性值-->
LastName: <form:input path="lastName"/>
</c:if>
<c:if test="${employee.id!=null}">
    <form:hidden path="id"/>
    <%--对于_method 不能使用form:hidden标签,因为modelAtttibute 对应的bean中没有_method这个属性--%>
    <input type="hidden" name="_method" value="PUT"/>
</c:if>

现在的input.jsp

<%@ page import="java.util.Map" %>
<%@ page import="java.util.HashMap" %>
<%@ taglib prefix="form" uri="http://www.springframework.org/tags/form" %>
<%@ page contentType="text/html;charset=UTF-8" language="java" %>
<%@ taglib prefix="c" uri="http://java.sun.com/jsp/jstl/core" %>
<html>
<head>
    <title>Title</title>
</head>
<body>

    <!--
        1.WHY使用form标签呢?
        可以更快速的开发出表单页面,而且可以更方便的进行表单值的回显
        2.注意:
        可以通过modelAttribute属性指定绑定的模型属性,
        则默认为request域对象中读取command的表单的bean.
        如果该属性值也不存在,则会发生错误。
    -->
    <form:form action="${pageContext.request.contextPath}/emp" method="POST
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值