SpringBootでWebサイトを作る

2022年度システム開発実習

SpringBoot

本を削除する

投稿日:

BookController に以下のメソッドを追加する。

	@RequestMapping("/delete/{id}")
	public ModelAndView delete(ModelAndView mav, @PathVariable long id) {
		mav.setViewName("delete");
		Optional<Book> data = repository.findById(id);
		mav.addObject("book", data.get());
		return mav;
	}

削除確認画面を追加する。

<!DOCTYPE html>
<html xmlns:th="http://www.thymeleaf.org">
<head>
<meta charset="UTF-8">
<title>本の削除</title>
</head>
<body>

<h1>本の削除</h1>
<p>この本を削除しますか?</p>
<table>
	<tr>
		<td><img class="book-image" th:src="${book.image}" /></td>
		<td th:text="${book.title}"></td>
		<td th:text="${book.author}"></td>
	</tr>
</table>


<form action="/delete" method="post" th:object="${book}">
	<input type="hidden" name="id" th:value="*{id}" />
	<input type="submit" value="削除する" />
</form>

</body>
</html>

BookControllerに削除確認のPOSTを受け付けるメソッドを追加する。

	@RequestMapping(value = "/delete", method = RequestMethod.POST)
	public ModelAndView deleteBook(ModelAndView mav, @RequestParam("id") long id) {
		Optional<Book> data = repository.findById(id);
		Book book = data.get();
		Bookshelf bookshelf = book.getBookshelf();
		if (bookshelf != null) {
			bookshelf.removeBook(book);
			bookshelfRepository.saveAndFlush(bookshelf);
		}
		repository.delete(book);
		return new ModelAndView("redirect:/");
	}

-SpringBoot
-

Copyright© 2022年度システム開発実習 , 2025 All Rights Reserved Powered by STINGER.