Springboot的 get查看,post创建,put更新,delete删除 -四种请求实例(form + controller)
总结
--get查看数据,
post创建新数据行,
put更新数据,
delete删除数据行--
add和select功能都共用这一个页面, 需要进行区分显示 ,使用thymeleaf的三元选择,判断emp是否为空的警告, 即可;
举例:
发送put请求,再进行修改员工的数据,在页面的methd只支持post和get,需要三步:
1.在SpringMVC中配置HiddenHttpMethodFilter;(SpringBoot就自动配置好了,进入WebMvcAutoConfigure进行查看)
2.在页面进行创建一个post表单
3.创建一个input项, name="_method";值就是我们指定的请求方式"delete"/"put" ;
html页面的form表单举例 delete请求
<td>
<form method="post" th:action="@{/emp/}+${emp.id}">
<input name="_method" value="delete" type="hidden" />
<button class="btn btn-sm btn-danger" type="submit">删除</button>
</form>
</td>
控制器 举例 delete请求
/**
* 6: 员工删除
* @param id
* @return
*/
@DeleteMapping("/emp/{id}")
public String deleteEmployee(@PathVariable Integer id){
employeeDao.delete(id);
return "redirect:/emps";
}
html页面的form表单举例 delete请求 的优化

如上图,会存在大量重复的form表单代码,毕竟在遍历生成标签的时候,每个会随之生成一个form表单
页面显示后代码冗余过大,JS脚本优化如下
<td>
<button th:attr="del_uri=@{/emp/}+${emp.id}" class="btn btn-sm btn-danger deleteBtn" >删除</button>
</td>
-------------如下放到公共区------------
<form id="deleteEmpForm" method="post">
<input type="hidden" name="_method" value="delete" />
</form>
--------------- 如下jquery代码----------
<script>
$(".deleteBtn").click(function () {
//删除当前员工的功能
$("#deleteEmpForm").attr("action",$(this).attr("del_uri")).submit();
return false;
});
</script>
Springboot的 get查看,post创建,put更新,delete删除 -四种请求实例(form + controller)的更多相关文章
- 三、MongoDB的创建、更新和删除
一.MongoDB的下载.安装与部署 二.MongoDB的基础知识简介 三.MongoDB的创建.更新和删除 概要 下面开始学习MongoDB最重要也是最基础的部分:C(创建)R(查询)U(更新)D( ...
- Django - 模型表单(创建、更新、删除)
urls.py # /music/alubm/add/ url(r'^album/add/$', views.AlbumCreate.as_view(), name="album-add&q ...
- Elasticsearch 创建、更新、删除文档、处理冲突
----创建新文档---- 1._index,_type和_id的组合可以唯一标识一个文档,所以确保一个新文档的最简单的办法就是,使用索引请求的POST形式让elsticsearch自动生成唯一_id ...
- Mongodb 笔记02 创建、更新和删除文档
创建.更新和删除文档 1. 插入并保存: 1). 单条插入,insert : db.foo.insert({"bar":"baz"}) 2). ...
- 05Oracle Database 表空间查看,创建,修改及删除
Oracle Database 表空间查看,创建,修改及删除 查看用户表空间 查看数据库管理员表空间表结构 desc dba_tablespaces; 查询表空间名称从管理员表空间表中 select ...
- Android异步更新UI的四种方式
Android异步更新UI的四种方式 2015-09-06 09:23 segmentfault 字号:T | T 大家都知道由于性能要求,android要求只能在UI线程中更新UI,要想在其他线程中 ...
- UI的线程问题:单线程原因及更新UI的四种方式
1.UI线程为什么设计为单线程? UI控件的操作不是线程安全的,对于多线程并发访问的时候,如果使用加锁机制会导致: UI控件的操作变得很复杂. 加锁的操作必定会导致效率下降. 所以android系统在 ...
- [ABP教程]第三章 创建、更新和删除图书
Web应用程序开发教程 - 第三章: 创建,更新和删除图书 关于本教程 在本系列教程中, 你将构建一个名为 Acme.BookStore 的用于管理书籍及其作者列表的基于ABP的应用程序. 它是使用以 ...
- MongoDB学习笔记二:创建、更新及删除文档
插入并保存文档 对目标集使用insert方法插入一个文档: > db.foo.insert({"bar" : "baz"}) 这个操作会给文档增加一个&q ...
随机推荐
- C# .NET 支付宝IOT小程序AES密钥解密
实际测试 KEY 是 16个 byte,byte[] byteKEY = System.Convert.FromBase64String(key); 注意:是Convert.FromBase6 ...
- 如何在Linux中结合示例使用'cat'和'tac'命令
上一篇我们讲到了cat的使用示例:https://www.cnblogs.com/WeiLian1024/p/11863057.html 本篇我们将继续延续Cat讲讲Tac 本文是我们讲讲Linux技 ...
- docker使用1
1. 安装 可以参考https://www.runoob.com/docker/centos-docker-install.html 注意linux版本是centos7.6 2. docker启动,停 ...
- websocket 函数
函数名 描述 socket_accept() 接受一个Socket连接 socket_bind() 把socket绑定在一个IP地址和端口上 socket_clear_error() 清除socket ...
- Django RuntimeError: Model class app_anme.models.Ad doesn't declare an explicit app_label and isn't in an application in INSTALLED_APPS.报错
报错内容 RuntimeError: Model class app_anme.models.Ad doesn't declare an explicit app_label and isn't in ...
- A Simple Question of Chemistry
#include<stdio.h> int main() { int i, l; ]; ]; l = ; ) { l++; } ; a[i]!= && i<l; i+ ...
- (三)pdf的构成之文件头综述
引自:https://blog.csdn.net/steve_cui/article/details/81981943 一般情况下,文件头,即,PDF文件的第一行,它用来定义PDF的版本,从而确定该P ...
- MediaPlayer的prepareAsync不回调onPrepared问题
一.问题排查 debug调试的framework日志信息: 根据日志,进入MediaPlayer的framework层看源码 STEP 1 先从 V/MediaPlayerNative: constr ...
- [SOJ #538]好数 [CC]FAVNUM(2019-8-6考试)
题目大意:给定$n$个正整数,求$[l,r]$中第$k$小的”好数“.$l,r\leqslant10^{18},n\leqslant62$,出现的其他数均$\leqslant10^{50}$ 好数定义 ...
- TCP协议(下)
TCP滑动窗口 发送端 LastByteAcked:第一部分和第二部分的分界线 LastByteSent:第二部分和第三部分的分界线 LastByteAcked + AdvertisedWindow: ...