03.JakartaEE11+Thymeleaf实现图书列表功能

一、 图书列表功能

** 1、 从数据库取出数据展示图书信息**

** BooksDao--->BooksDaoImpl**

复制代码
public class BooksDaoImpl extends BaseDao implements BooksDao {
    @Override
    public List<Books> queryBooks() throws Exception {
        String sql = "select  id,title,author,isbn,stock,publish_date publishDate,category from books";
        return getBeanList(Books.class,sql);
    }
}

** BooksServlet**

复制代码
package com.hnjt.servlet;
​
import com.hnjt.dao.BooksDao;
import com.hnjt.dao.impl.BooksDaoImpl;
import com.hnjt.entity.Books;
import com.hnjt.thymeleaf.CustomTemplateEngine;
import com.hnjt.thymeleaf.ModelServlet;
import jakarta.servlet.ServletException;
import jakarta.servlet.annotation.WebServlet;
import jakarta.servlet.http.HttpServletRequest;
import jakarta.servlet.http.HttpServletResponse;
import lombok.extern.slf4j.Slf4j;
​
import java.io.IOException;
import java.util.List;
​
@Slf4j
@WebServlet("/booksServlet")
public class BooksServlet extends ModelServlet {
​
    private BooksDao booksService = new BooksDaoImpl();
​
    /**
     * 1、查询书籍信息B
     * @param req
     * @param resp
     * @throws ServletException
     * @throws IOException
     */
    public void list(HttpServletRequest req, HttpServletResponse resp) throws ServletException, IOException {
        CustomTemplateEngine engine = CustomTemplateEngine.getInstance(req);
        try {
            System.out.println("执行list方法...");
            // 查询书籍信息
            List<Books> books = booksService.queryBooks();
​
​
            // 将书籍信息保存到request域中
            req.setAttribute("books", books);
        } catch (Exception e) {
            throw new RuntimeException(e);
        }
​
        // 转发到list.html页面
        engine.processTemplate("list", req, resp);
​
    }
​
}

** 2、美化列表页面**

使用Bootstrap3框架引入,使得页面更加漂亮直观

官网:https://v3.bootcss.com/

拷贝最新版本的Link链接

<!-- 最新版本的 Bootstrap 核心 CSS 文件 --> <link rel="stylesheet" href="https://cdn.bootcdn.net/ajax/libs/twitter-bootstrap/3.4.1/css/bootstrap.min.css">​

** 4、启动服务,运行如下:**

二、删除图书功能

1、 BooksServlet

复制代码
    /**
     * 2、删除书籍信息
     * @param req
     * @param resp
     * @throws ServletException
     * @throws IOException
     */
    public void remove(HttpServletRequest req, HttpServletResponse resp) throws ServletException, IOException {
        CustomTemplateEngine engine = CustomTemplateEngine.getInstance(req);
        try {
            System.out.println("执行remove方法...");
            int id = Integer.parseInt(req.getParameter("id"));
            System.out.println("id=>>>" + id);
            // 删除书籍信息
            booksService.deleteBook(id);
            // 重定向到list.html页面
            resp.sendRedirect( req.getContextPath()+"/booksServlet?method=list");
        } catch (Exception e) {
            e.printStackTrace();
        }
​

2、BooksDaoImpl.java

复制代码
@Override
public boolean deleteBook(int id) throws Exception {
    String sql = "delete from books where id = ?";
​
    if (update(sql, id) > 0) return true;
    else return false;
}

3、列表页面list.html 添加Jquery3来提示删除对话框

复制代码
​
    <!--     jquery库文件-->
    <script src="https://code.jquery.com/jquery-3.4.1.min.js"></script>
​
​
​
<script>
    // 删除按钮的点击事件
    $(".delBtn").click(function (e) {
        var flag= confirm("确定要删除吗?");
        // 如果用户点击取消,阻止表单提交
        if(!flag){
            e.preventDefault();
        }
    });
</script>
</body>

3、启动服务,运行如下:

** 1)单击删除-》提示对话框**

2)单击删除》删除数据

相关推荐
小bo波几秒前
形式化方法 × UML
java·软件工程·uml·面向对象·形式化方法·tla+
就叫_这个吧26 分钟前
IDEA中Javaweb项目创建+servlet,实现简单的信息录入获取
java·servlet·intellij-idea·web
程序员Jelena29 分钟前
接口调用的代码实现:从入门到实战
java
代码钢琴师33 分钟前
Throttle4j 快速上手教程
java
2601_961194021 小时前
考研资料电子版|去哪找|网盘
java·c语言·c++·python·考研·php
于先生吖1 小时前
前后端分离二手商城开发,质检登记、回收回款整套业务源码部署教程
java·开发语言·uni-app
小锋java12341 小时前
分享一套锋哥原创的基于LangChain4j的RAG医疗健康知识智能问答系统(SpringBoot4+Vue3+Ollama)
java·人工智能
程序员晨曦1 小时前
Java 并发修仙传:ThreadLocal 从“闭关修炼”到“走火入魔”的救赎之路
java·开发语言
AIGS0011 小时前
探索向量空间JBoltAI:工业企业数智化升级的基础设施
java·人工智能·人工智能ai大模型应用
zhangjw342 小时前
第18篇:Java网络编程零基础详解,IP、端口、TCP、UDP、Socket通信、实战文件传输
java·网络·tcp/ip