ZBLOG

ssm+jsp实现图书管理系统的图书列表分页显示,给个完整代码案例

以下是一个使用SSM框架结合JSP实现图书管理系统的图书列表分页显示的简单代码示例:

首先,创建Book实体类(Book.java):

public class Book {
    private int id;
    private String title;
    private String author;
    // 其他属性和相应的getter/setter方法省略
}

接下来,创建BookMapper接口(BookMapper.java):

public interface BookMapper {
    List<Book> getBooks();
}

然后,在mapper文件夹下创建BookMapper.xml配置文件(BookMapper.xml),定义SQL语句:

<?xml version="1.0" encoding="UTF-8" ?>
<!DOCTYPE mapper PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN"
        "http://mybatis.org/dtd/mybatis-3-mapper.dtd">

<mapper namespace="com.example.mapper.BookMapper">
    <select id="getBooks" resultType="com.example.model.Book">
        SELECT * FROM book_table
    </select>
</mapper>

在service包下创建BookService接口(BookService.java):

public interface BookService {
    List<Book> getBooks();
}

实现BookService接口(BookServiceImpl.java):

@Service
public class BookServiceImpl implements BookService {

    @Autowired
    private BookMapper bookMapper;

    @Override
    public List<Book> getBooks() {
        return bookMapper.getBooks();
    }
}

在controller包下创建BookController类(BookController.java):

@Controller
@RequestMapping("/book")
public class BookController {

    @Autowired
    private BookService bookService;

   @RequestMapping("/list")
   public String listBooks(Model model, @RequestParam(defaultValue = "1") int page) {
       int pageSize = 10; // 每页显示的记录数
       int start = (page - 1) * pageSize;
       List<Book> books = bookService.getBooks();
       
       // 分页处理
       List<Book> pageBooks = new ArrayList<>();
       for (int i = start; i < start + pageSize && i < books.size(); i++) {
           pageBooks.add(books.get(i));
       }

       int pageCount = (int) Math.ceil((double) books.size() / pageSize); // 总页数

       model.addAttribute("books", pageBooks);
       model.addAttribute("pageCount", pageCount);
       
       return "book_list";
   }
}

最后,在WebContent目录下创建JSP视图文件(book_list.jsp):

<%@ page language="java" contentType="text/html; charset=UTF-8"
    pageEncoding="UTF-8"%>
<!DOCTYPE html>
<html>
<head>
<meta charset="UTF-8">
<title>图书列表</title>
</head>
<body>
    <table border="1">
        <tr>
            <th>ID</th>
            <th>Title</th>
            <th>Author</th>
            <!-- 其他字段列省略 -->
        </tr>

        <%@ taglib prefix="c" uri="http://java.sun.com/jsp/jstl/core"%>
        <%@ taglib prefix="fmt" uri="http://java.sun.com/jsp/jstl/fmt"%>

        <c:forEach var="book" items="${books}">
            <tr>
                <td>${book.id}</td>
                <td>${book.title}</td>
                <td>${book.author}</td>
                <!-- 其他字段列省略 -->
            </tr>
        </c:forEach>
    </table>

    <fmt:formatNumber value="${pageCount}" pattern="###,###"></fmt:formatNumber>页

    <%-- 分页处理 --%>
    <c:if test="${pageCount > 1}">
        <ul>
            <c:set var="currentPage" value="${param.page}" />
            <c:if test="${empty currentPage}">
                <c:set var="currentPage" value="1" />
            </c:if>

            <c:url var="previousUrl" value="/book/list">
                <c:param name="page" value="${currentPage - 1}" />
            </c:url>
            <li><a href="<c:out value="${previousUrl}" />">上一页</a></li>

            <c:forEach begin="1" end="${pageCount}" step="1" varStatus="status">
                <c:url var="pageNumberUrl" value="/book/list">
                    <c:param name="page" value="${status.index + 1}" />
                </c:url>

                <%-- 当前页的样式标记 --%>
                <li
                    <%-- 如果当前页与循环变量一致,则添加active类名 --%>
                    class="<%=(status.index + 1 == currentPage) ? 'active' : ''%>">
                    <!-- 跳转到对应页码的链接 -->
                    <a href="<c:out value="${pageNumberUrl}" />"><%= status.index + 1 %></a>
                </li>
            </c:forEach>

            <c:url var="nextUrl" value="/book/list">
                <%-- 下一页,注意参数为当前页+1 --%>
                <c:param name="page" value="${currentPage + 1}" />
            </c:url>
            <li><a href="<c:out value="${nextUrl}" />">下一页</a></li>
        </ul>
    </c:if>

</body>
</html>

这是一个简单的示例,通过SSM框架和JSP实现了图书管理系统的图书列表分页显示。需要注意的是,以上代码中可能需要根据具体项目进行适当调整和完善。

希望对你有帮助!


内容由零声教学AI助手提供,问题来源于学员提问

本站部分文章来源于网络,版权归原作者所有,如有侵权请联系站长删除。
转载请注明出处:https://golang.0voice.com/?id=7850

分享:
扫描分享到社交APP
上一篇
下一篇
发表列表
游客 游客
此处应有掌声~
评论列表

还没有评论,快来说点什么吧~

联系我们

在线咨询: 点击这里给我发消息

微信号:3007537140

上班时间: 10:30-22:30

关注我们
x

注册

已经有帐号?