首页 > 基础资料 博客日记

JavaWeb学习-分页功能

2023-07-24 20:29:07基础资料围观202

文章JavaWeb学习-分页功能分享给大家,欢迎收藏Java资料网,专注分享技术知识

1. 获取指定页码上的库存列表信息,每页显示5条

(1)FruitDAO和FruitDAOImpl

//获取指定页码上的库存列表信息,每页显示5条
List<Fruit> getFruitListbypageNo(int pageNo);

public List<Fruit> getFruitListbypageNo(int pageNo)  {
        List<Fruit> list = new ArrayList<>();
        getConn();

        String sql = "select * from fruit LIMIT ?,5";
        try {
            ps = conn.prepareStatement(sql);
            ps.setInt(1,(pageNo-1)*5);
            rs = ps.executeQuery();
            while (rs.next()){
                Fruit fruit = new Fruit();
                fruit.setFid(rs.getInt(1));
                fruit.setFname(rs.getString(2));
                fruit.setPrice(rs.getInt(3));
                fruit.setFcount(rs.getInt(4));
                fruit.setRemark(rs.getString(5));
                list.add(fruit);
            }
        } catch (SQLException e) {
            e.printStackTrace();
        }
        return list;
}
    

注:实体类必须写在while(rs.next())里面,否则最后一条数据会覆盖之前已保存的数据。

(2)IndexServlet

FruitDAO fruitDAO=new FruitDAOImpl();
//List<Fruit> fruitList = fruitDAO.getFruitList();
 List<Fruit> fruitList = fruitDAO.getFruitListbypageNo(1); //获取第一页的内容
session.setAttribute("fruitList", fruitList);

2.实现分页功能

(1)index.html

<html xmlns:th="http://www.thymeleaf.org">
<head>
    <meta charset="utf-8">
    <script language="JavaScript" src="js/index.js"></script>
</head>
<body>
<div >
    <div  style="align-content: center;margin-left: 30%">
        <div>
            <a th:href="@{/add.html}">添加信息</a>
        </div>
        <table border="1" >
            <tr>
                <th >名称</th>
                <th >单价</th>
                <th >库存</th>
                <th >备注</th>
                <th >操作</th>
            </tr>

            <tr th:if="${#lists.isEmpty(session.fruitList)}">
                <td colspan="4">对不起,货存为空!</td>
            </tr>
            <tr th:unless="${#lists.isEmpty(session.fruitList)}" th:each="fruit : ${session.fruitList}">
               <!-- <td ><a th:text="${fruit.fname}" href="@{'/edit.do?fid='+${fruit.fid}}">苹果</a></td>
                  ( th:text="" 会把后面的值覆盖,添加超链接时候,为防止超链接被覆盖,将“th:text=”放入<a>标签中
       @{}表示thymeleaf中的绝对路径 ${}表示需要thymeleaf来解析 而“/edit.do?fid=”是字符串不需要thymeleaf去解析,添加单引号) -->

                <!--
                给url地址后面附加请求参数:
                @{/order/process(exexId=${exexId},exexType="FAST")}  (键值对)
                -->
                <td><a th:text="${fruit.fname}" th:href="@{'/edit.do?fid='+${fruit.fid}}">苹果 </a></td>
                <td th:text="${fruit.price}">5</td>
                <td th:text="${fruit.fcount}">20</td>
                <td th:text="${fruit.remark}"> </td>
                <!-- <td> <img src="img/del.png" th:onclick="'delFruit('+${fruit.fid}+')"></td> -->
                <td> <img src="img/del.png" style="height: 50px;width: 50px" th:onclick="|delFruit(${fruit.fid})|"></td>
            </tr>
        </table>
        <div style="margin-left: 1%">
            <input type="button" value="首  页" th:onclick="|page(1)|" th:disabled="${session.pageNo == 1}"/>
            <input type="button" value="上一页" th:onclick="|page(${session.pageNo - 1})|" th:disabled="${session.pageNo == 1}"/>
            <input type="button" value="下一页" th:onclick="|page(${session.pageNo + 1})|" th:disabled="${session.pageNo == session.pageCount}"/>
            <input type="button" value="尾  页" th:onclick="|page(${session.pageCount})|" th:disabled="${session.pageNo == session.pageCount}"/>

        </div>
    </div>
</div>
</body>
</html>

//th:disabled="${session.pageNo == 1}"表示在在。。。条件下该按钮不能使用

(2)index.js

function page(pageNo) {
    window.location.href="index?pageNo="+pageNo;
}

(3)FruitDAO和FruitDAOImpl

//获取库存总页数
int getFruitCount();

public int getFruitCount() {
        int count = 0;
        String sql = "select * from fruit ";
        getConn();
        try {
            ps = conn.prepareStatement(sql);
            rs = ps.executeQuery();
            while (rs.next()){
                count++;  //获取rs中的条数
            }
        } catch (SQLException e) {
            e.printStackTrace();
        }
        return count;
    }

 


文章来源:https://www.cnblogs.com/Joyce-mi7/p/16494331.html
本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若内容造成侵权/违法违规/事实不符,请联系邮箱:jacktools123@163.com进行投诉反馈,一经查实,立即删除!

标签:

相关文章

本站推荐

标签云