如果是使用request mapping呢
时间: 2024-02-09 16:11:31 浏览: 68
好的,如果您想使用 `@RequestMapping` 注解来实现图书管理系统中新增图书的功能,可以参考下面的示例代码:
1. 在 Controller 类中添加一个处理 GET 请求的方法,用于显示新增图书的表单页面。示例代码如下:
```java
@RequestMapping("/books/add")
public String showAddBookForm(Model model) {
model.addAttribute("book", new Book());
return "add-book";
}
```
2. 在 Controller 类中添加一个处理 POST 请求的方法,用于处理新增图书的表单提交操作。示例代码如下:
```java
@RequestMapping(value = "/books", method = RequestMethod.POST)
public String addBook(@ModelAttribute("book") Book book, BindingResult result) {
if (result.hasErrors()) {
return "add-book";
}
bookRepository.save(book);
return "redirect:/books";
}
```
3. 在 templates 目录下创建 add-book.html 文件,该文件用于显示新增图书的表单页面。示例代码如下:
```html
<!DOCTYPE html>
<html lang="en" xmlns:th="http://www.thymeleaf.org">
<head>
<meta charset="UTF-8">
<title>Add Book</title>
</head>
<body>
<h1>Add Book</h1>
<form action="/books" method="post" th:object="${book}">
<label for="title">Title:</label>
<input type="text" id="title" name="title" th:field="*{title}" required/>
<label for="author">Author:</label>
<input type="text" id="author" name="author" th:field="*{author}" required/>
<label for="publisher">Publisher:</label>
<input type="text" id="publisher" name="publisher" th:field="*{publisher}" required/>
<label for="isbn">ISBN:</label>
<input type="text" id="isbn" name="isbn" th:field="*{isbn}" required/>
<button type="submit">Add</button>
</form>
</body>
</html>
```
4. 在 books.html 页面中添加一个链接,用于跳转到新增图书的页面。示例代码如下:
```html
<a href="/books/add">Add Book</a>
```
这样,当用户点击该链接时,就会跳转到新增图书的表单页面,用户填写完成后,点击提交按钮,就会调用 addBook() 方法将新的图书信息保存到数据库中。保存完成后,用户会被重定向到图书列表页面。
阅读全文