Thymeleaf Maven+Servlet+Mysql图书框架—3(九)

一、添加图书功能

1、从列表页面跳转到图书页面

html 复制代码
<p class="pp" ><a href="booksServlet?method=toAdd">添加图书</a></p>
java 复制代码
    /**
     * 跳转到添加页面
     * @param req
     * @param resp
     * @throws ServletException
     * @throws IOException
     */
    public void toAdd(HttpServletRequest req, HttpServletResponse resp) throws ServletException, IOException {
     CustomTemplateEngine engine = CustomTemplateEngine.getInstance(req);
     // 转发到add.html页面
     engine.processTemplate("add", req, resp);

    }

2、图书页面add.html

html 复制代码
<!DOCTYPE html>
<html lang="en" xmlns:th="http://www.thymeleaf.org">
<head>
    <meta charset="UTF-8">
    <title>图书添加页面</title>
    <!-- 最新版本的 Bootstrap 核心 CSS 文件 -->
    <link rel="stylesheet" href="https://cdn.bootcdn.net/ajax/libs/twitter-bootstrap/3.4.1/css/bootstrap.min.css">

</head>
<body>
<h1 class="text-center">图书添加页面</h1>
<div class="container text-center">
<form action="booksServlet?method=save" method="post">
    <p>
        <label>书名:</label>
        <input type="text" name="title" placeholder="输入书名:">
    </p>
    <p>
        <label>作者:</label>
        <input type="text" name="author" placeholder="输入作者:">
    </p>
    <p>
        <label>书号:</label>
        <input type="text" name="isbn" placeholder="输入书号:">
    </p>
    <p>
        <label>库存:</label>
        <input type="number" name="stock" placeholder="输入库存:">
    </p>
    <p>
        <label>出版日期:</label>
        <input type="date" name="publishDate" placeholder="输入出版日期:">
    </p>
    <p>
        <label>种类:</label>
        <input type="text" name="category" placeholder="输入种类:">
    </p>
    <p>
        <button type="submit">添加图书</button>
    </p>
</form>
</div>
</body>
</html>

3、BooksServlet处理数据

java 复制代码
 /**
     * 3、添加书籍信息
     * @param req
     * @param resp
     * @throws ServletException
     * @throws IOException
     */
    public void save(HttpServletRequest req, HttpServletResponse resp) throws ServletException, IOException {
        CustomTemplateEngine engine = CustomTemplateEngine.getInstance(req);
        try {
            System.out.println("执行save方法...");
            // 获取书籍信息
            String title = req.getParameter("title");
            String author = req.getParameter("author");
            String isbn = req.getParameter("isbn");
            int stock = Integer.parseInt(req.getParameter("stock"));
            String publishDate = req.getParameter("publishDate");
            String category = req.getParameter("category");

            //将字符串转换成java.util.Date
            java.sql.Date publishDate1 = java.sql.Date.valueOf(publishDate);

            // 封装书籍信息
            Books book = new Books(null,title, author, isbn, stock, publishDate1, category);

            // 删除书籍信息
            booksService.add(book);
            // 重定向到list.html页面
            resp.sendRedirect( req.getContextPath()+"/booksServlet?method=list");
        } catch (Exception e) {
            e.printStackTrace();
        }
    }

4、启动服务,运行如下

二、修改图书功能

1、从列表页面跳转到修改页面

java 复制代码
    <td><a class="btn btn-info btn-small" th:href="@{/booksServlet(method='toUpdate',id=${book.id})}">修改</a>
            </td>

2、修改页面update.html

html 复制代码
<!DOCTYPE html>
<html lang="en" xmlns:th="http://www.thymeleaf.org">
<head>
    <meta charset="UTF-8">
    <title>图书添加页面</title>
    <!-- 最新版本的 Bootstrap 核心 CSS 文件 -->
    <link rel="stylesheet" href="https://cdn.bootcdn.net/ajax/libs/twitter-bootstrap/3.4.1/css/bootstrap.min.css">

</head>
<body>
<h1 class="text-center">图书修改</h1>
<div class="container text-center">
<form action="booksServlet?method=update" method="post">
    <p>
        <input type="hidden" name="id" th:value="${book.id}">
        <label>书名:</label>
        <input type="text" name="title" placeholder="输入书名:" th:value="${book.title}">
    </p>
    <p>
        <label>作者:</label>
        <input type="text" name="author"  th:value="${book.author}">
    </p>
    <p>
        <label>书号:</label>
        <input type="text" name="isbn"  th:value="${book.isbn}">
    </p>
    <p>
        <label>库存:</label>
        <input type="number" name="stock"  th:value="${book.stock}">
    </p>
    <p>
        <label>出版日期:</label>
        <input type="date" name="publishDate"  th:value="${book.publishDate}">
    </p>
    <p>
        <label>种类:</label>
        <input type="text" name="category" th:value="${book.category}">
    </p>
    <p>
        <button class="btn btn-success" type="submit">更新图书</button>
    </p>
</form>
</div>
</body>
</html>

3、BooksServlet处理数据

java 复制代码
/**
     * 跳转到更新页面
     * @param req
     * @param resp
     * @throws ServletException
     * @throws IOException
     */
    public void toUpdate(HttpServletRequest req, HttpServletResponse resp) throws ServletException, IOException {
        CustomTemplateEngine engine = CustomTemplateEngine.getInstance(req);
        try {
           int id = Integer.parseInt(req.getParameter("id"));
           // 根据id查询书籍信息
            Books book = booksService.findById(id);
            System.out.println("book=>>>" + book);
            req.setAttribute("book", book);
        } catch (Exception e) {
        e.printStackTrace();
    }

        // 转发到add.html页面
        engine.processTemplate("update", req, resp);

    }

    /**
     * 4、更新书籍信息
     * @param req
     * @param resp
     * @throws ServletException
     * @throws IOException
     */
    public void update(HttpServletRequest req, HttpServletResponse resp) throws ServletException, IOException {
        CustomTemplateEngine engine = CustomTemplateEngine.getInstance(req);
        try {
            System.out.println("执行update方法...");
            int id = Integer.parseInt(req.getParameter("id"));
            // 获取书籍信息
            String title = req.getParameter("title");
            String author = req.getParameter("author");
            String isbn = req.getParameter("isbn");
            int stock = Integer.parseInt(req.getParameter("stock"));
            String publishDate = req.getParameter("publishDate");
            String category = req.getParameter("category");

            //将字符串转换成java.util.Date
            java.sql.Date publishDate1 = java.sql.Date.valueOf(publishDate);

            // 封装书籍信息
            Books book = new Books(id,title, author, isbn, stock, publishDate1, category);

            // 删除书籍信息
            booksService.edit(book);
            // 重定向到list.html页面
            resp.sendRedirect( req.getContextPath()+"/booksServlet?method=list");
        } catch (Exception e) {
            e.printStackTrace();
        }
    }

4、启动服务,运行如下

展示修改数据

部分修改数据

修改后:

相关推荐
狂龙骄子2 小时前
MySQL表字段批量修改SQL实战技巧
数据库·sql·mysql·alter table·批量修改·sql实战技巧
独隅2 小时前
Linux 正则表达式 的简介
linux·mysql·正则表达式
zhangphil3 小时前
Kotlin IDEA配置kotlin-maven-plugin、kotlin-stdlib、kotlinx-coroutines-core最新版本
kotlin·maven
duansamve3 小时前
VSCode中如何搭建JAVA+MAVEN开发环境?
java·vscode·maven
爱吃山竹的大肚肚3 小时前
达梦(DM)数据库中设置表空间
java·数据库·sql·mysql·spring·spring cloud·oracle
启明真纳3 小时前
MySQL基本概念
数据库·mysql
栗子叶4 小时前
阅读MySQL实战45讲专栏总结
数据库·mysql·innodb·主从同步·数据库原理
人道领域4 小时前
JavaWeb从入门到进阶(Maven的安装和在idea中的构建)
java·maven
码农阿豪4 小时前
时序数据爆发增长,企业如何破解存储与分析困局?
数据库·mysql·金仓