SpringMVC第九阶段:Restful风格实现的CRUD

Restful风格实现的CRUD图书

把前面的传统请求方式的图书的CRUD换成刚刚讲的Restful风格的图书模块的CRUD。只需要修改页面端的请求方式和地址,以及服务器端Controller的接收。

1、列表功能实现

Controller中的修改:

@RequestMapping(value = "/book",method = RequestMethod.GET)
public String list(Map map){
    // 查询全部图书
    List<Book> books = bookService.queryBooks();
    // 保存到Request域中
    map.put("books", books);
    // 请求转发到/book/bookList.jsp页面
    return "bookList";
}

jsp页面中请求的修改:

在这里插入图片描述

2、删除功能实现

Controller中的删除:

@RequestMapping(value = "/book/{id}",method = RequestMethod.DELETE)
public String delete(@PathVariable("id") Integer id){
    // 调用bookService.deleteBookById()删除图书
    bookService.deleteBookById(id);
    // 重定向回图书列表管理页面
    return "redirect:/book";
}

在 bookList.jsp页面中修改:

在这里插入图片描述

修改 删除的 js代码:

在这里插入图片描述

3、添加功能实现

Controller方法中的代码:

@RequestMapping(value = "/book",method = RequestMethod.POST)
public String save(Book book){
    // 保存图书信息
    bookService.saveBook(book);
    // 重定向回图书列表管理页面
    return "redirect:/book";
}

bookEdit.jsp页面上的更改:

在这里插入图片描述

4、更新功能实现

更新图书分为两个步骤:
1、查询需要更新的图书,填充到更新页面
2、提交请求,发送数据给服务器更新保存修改。

注意: 中文乱码的Filter一定要配置在 restful Filter的前面

5、查询需要更新的图书,填充到更新页面

Controller中代码:

@RequestMapping(value = "/book/{id}",method = RequestMethod.GET)
public String queryBookById(@PathVariable("id") Integer id,Map<String,Object> map){
    // 调用bookService.queryBookById查询图书, 并且保存到Request域中
    map.put("book",bookService.queryBookById(id));
    // 请求转发到 /book/bookEdit.jsp页面
    return "bookEdit";
}

修改的请求地址需要更新为:

在这里插入图片描述

6、提交请求,发送数据给服务器更新保存修改

Controller中的代码:

@RequestMapping(value = "/book/{id}",method = RequestMethod.PUT)
public String update(Book book){
    // 调用bookService.save() 保存图书修改
    bookService.updateBook(book);
    // 重定向回图书列表管理页面
    return "redirect:/book";
}

bookEdit.jsp页面的修改:
在这里插入图片描述

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

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

相关文章

数据表示(二进制、进制转换、补码计算)

目录 1.进制2.进制转换2.1 R进制转十进制2.2 十进制转R进制2.3 m进制转n进制方法1&#xff1a;十进制中转方法2&#xff1a;直接转化 3.进制计算3.1 机器数3.2 编码方式&#xff08;原码、反码、补码、移码&#xff09;3.3 表示范围定点整数定点小数 3.4 定点表示法 4.浮点数4.…

Python之网络编程

一、操作系统基础 操作系统&#xff1a;&#xff08;Operating System&#xff0c;简称OS&#xff09;是管理和控制计算机硬件与软件资源的计算机程序&#xff0c;是直接运行在“裸机”上的最基本的系统软件&#xff0c;任何其他软件都必须在操作系统的支持下才能运行。 注&a…

代码随想录算法训练营day53 | 1143.最长公共子序列,1035.不相交的线,53. 最大子序和 动态规划

代码随想录算法训练营day53 | 1143.最长公共子序列&#xff0c;1035.不相交的线&#xff0c;53. 最大子序和 动态规划 1143.最长公共子序列解法一&#xff1a;动态规划 1035.不相交的线解法一&#xff1a;动态规划 53. 最大子序和 动态规划解法一&#xff1a;动态规划解法二&am…

机智云的离线语音识别模组,让家电变得更加智能和便捷

随着人们对智能化生活的需求不断增加&#xff0c;离线语音模组越来越受到欢迎。它可以为家庭、工作和娱乐提供更加智能和便捷的服务&#xff0c;例如通过语音指令控制家居设备、查询天气信息、播放音乐等。 “小智同学&#xff0c;打开灯光” “调到最亮” “正转一档” 人工智…

websocket在分布式场景的应用方案

websocket简介 WebSocket 是一种在单个 TCP 连接上进行全双工通信的协议。它可以在客户端和服务器之间建立持久连接&#xff0c;使得服务器可以主动向客户端推送数据&#xff0c;而不需要客户端不断地向服务器发送请求。 WebSocket 协议的优点包括&#xff1a; 实时性&#x…

MySql MVCC 详解

注意以下操作都是以InnoDB引擎为操作基准。 一&#xff0c;前置知识准备 1&#xff0c;MVCC简介 MVCC 是多版本并发控制&#xff08;Multiversion Concurrency Control&#xff09;的缩写。它是一种数据库事务管理技术&#xff0c;用于解决并发访问数据库的问题。MVCC 通过创…

OpenMMLab-AI实战营第二期——2.人体关键点检测与MMPose

文章目录 1. 人体姿态估计的介绍和应用2-1. 2D姿态估计概述2.1 任务描述2.2 基于回归2.3 基于热力图2.3.1 从数据标注生成热力图&#xff08;高斯函数&#xff09;2.3.2 使用热力图训练模型2.3.3 从热力图还原关键点 2.4 自顶向下2.5 自底向上2.6 单阶段方法 2-2. 2D姿态估计详…

STM32单片机(三)第二节:GPIO输出练习(LED闪烁、LED流水灯、蜂鸣器)

❤️ 专栏简介&#xff1a;本专栏记录了从零学习单片机的过程&#xff0c;其中包括51单片机和STM32单片机两部分&#xff1b;建议先学习51单片机&#xff0c;其是STM32等高级单片机的基础&#xff1b;这样再学习STM32时才能融会贯通。 ☀️ 专栏适用人群 &#xff1a;适用于想要…

IIC总线协议的死锁问题

目录 1. IIC的特性 2. IIC死锁问题分析 3. 常见的IIC死锁问题解决方法 1. IIC的特性 IIC协议是一个允许一主多从通信的协议&#xff0c;只能用于短距离通信&#xff0c;并且只需要两根信号线来交换信息。 IIC的两根信号是SCL和SDA&#xff0c;SCL是时钟信号线&#xff0c;S…

javascript基础六:说说你对闭包的理解?闭包使用场景?

一、是什么 一个函数和对其周围状态&#xff08;lexical environment&#xff0c;词法环境&#xff09;的引用捆绑在一起&#xff08;或者说函数被引用包围&#xff09;&#xff0c;这样的组合就是闭包&#xff08;closure&#xff09; 也就是说&#xff0c;闭包让你可以在一个…

CDN加速在网站建设中的应用

近年来&#xff0c;随着互联网技术的不断发展&#xff0c;互联网行业迎来了井喷式发展&#xff0c;各类网站如雨后春笋般不断涌现&#xff0c;网站数量迅速增长&#xff0c;但与此同时也导致网站响应速度慢、访问不流畅等问题。因此&#xff0c;如何优化网站的性能、提高网站的…

【算法】简单讲解如何使用两个栈实现一个队列

文章目录 什么是栈和队列&#xff1f;设计思路代码实现 什么是栈和队列&#xff1f; 栈和队列其实大家基本都知道是什么&#xff0c;或者说&#xff0c;最基本的&#xff0c;他们的特性我们是知道的。 栈是一种FILO先进后出的数据结构&#xff0c;队列是一种FIFO先进先出的数据…

IP-Guard客户端上插入加密盘时提示格式化,能否禁止该弹窗?

客户端上插入加密盘时提示格式化,能否禁止该弹窗? 1、当Shell Hardware Detection服务启动时,操作系统检测硬件的速度要快于客户端,而此时操作系统是不能识别加密后的移动盘的,因此认为加密盘异常,提示需要格式化,策略-客户端配置,选择禁止windows7播放功能。配置后不…

华为OD机试题【字符统计】【2023 B卷 100分】

文章目录 &#x1f3af; 前言&#x1f3af; 题目描述&#x1f3af; 解题思路&#x1f4d9; Python代码实现&#x1f4d7; Java代码实现&#x1f4d8; C语言代码实现 &#x1f3af; 前言 &#x1f3c6; 《华为机试真题》专栏含2023年牛客网面经、华为面经试题、华为OD机试真题最…

【快应用】多语言适配案例

【关键词】 多语言&#xff0c;$t 【问题背景】 快应用平台的能力会覆盖多个国家地区&#xff0c;平台支持多语言的能力后&#xff0c;可以让一个快应同时支持多个语言版本的切换&#xff0c;开发者无需开发多个不同语言的源码项目&#xff0c;避免给项目维护带来困难。使用系…

《Datawhale南瓜书》出第二版啦!

Datawhale干货 作者&#xff1a;Datawhale开源项目团队 作为机器学习的入门经典教材&#xff0c;周志华老师的《机器学习》&#xff0c;自2016年1月底出版以来&#xff0c;首印5000册一周售罄&#xff0c;并在8个月内重印9次。先后登上了亚马逊&#xff0c;京东&#xff0c;当…

[数据集][目标检测]目标检测数据集绝缘子缺陷防震锤1688张5类别VOC格式

数据集格式&#xff1a;Pascal VOC格式(不包含分割路径的txt文件和yolo格式的txt文件&#xff0c;仅仅包含jpg图片和对应的xml) 图片数量(jpg文件个数)&#xff1a;1688 标注数量(xml文件个数)&#xff1a;1688 标注类别数&#xff1a;5 标注类别名称:["flashover",&…

00): Can‘t connect to MySQL server on ‘localhost:3306‘ (10061)

好久没有使用数据库&#xff0c; 连接数据库报上面的错误&#xff0c;尝试了网上的方法还是没有成功&#xff0c;思索之后想起之前手动关闭了mysql的服务&#xff0c;Windows启动时mysql服务不会自动启动&#xff0c;成功启动mysql服务后再次连接数据库&#xff0c;正常连接。 …

PGXC GaussDB

PGXCA PGXC&#xff08;PostgreSQL eXtended Coordinator&#xff09;是一个基于 PostgreSQL 架构的分布式数据库解决方案。它扩展了 PostgreSQL&#xff0c;为用户提供了在多个节点上分布式存储和处理数据的能力。 PGXC 的设计目标是将 PostgreSQL 扩展为能够处理大规模数据…

Java课程设计之购物车管理系统

一、项目准备 1、开发工具&#xff1a;JDK、Eclipse 2、需求分析&#xff1a; 包括商品管理和购物车管理。 1&#xff09;商品管理主要功能 商品信息导入 显示所有商品信息 2&#xff09;购物车主要功能 添加商品到购物车 修改购物车中的商品数量 显示购物车中的所有商…