页码显示超出数据总数以及负数

来源:5-2 项目作业

视线模糊

2021-01-10 22:07:35

点击上一页下一页的时候有问题,共计7条数据,每页显示3条,就是3页,但是点击上一页的时候会出现超过3的数字,点击下一页会出现0或者负数

http://img.mukewang.com/climg/5ffb09f90961d9ae12750661.jpg

http://img.mukewang.com/climg/5ffb09fa0946215513040682.jpg

http://img.mukewang.com/climg/5ffb09fa099a80f713130700.jpg

package com.imooc.ibook.controller;


import com.github.pagehelper.PageHelper;

import com.github.pagehelper.PageInfo;

import com.imooc.ibook.biz.BookBiz;

import com.imooc.ibook.biz.CategoryBiz;

import com.imooc.ibook.biz.impl.BookBizImpl;

import com.imooc.ibook.biz.impl.CategoryBizImpl;

import com.imooc.ibook.entity.Book;

import com.imooc.ibook.entity.Category;


import javax.servlet.ServletException;

import javax.servlet.http.HttpServletRequest;

import javax.servlet.http.HttpServletResponse;

import java.io.IOException;

import java.util.List;


public class DefaultController {


    private CategoryBiz categoryBiz = new CategoryBizImpl();

private BookBiz bookBiz = new BookBizImpl();


//list.do获取所有的图书的数据

    public void list(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {

        List<Category> categoryList = categoryBiz.selectAll();

String pageNum = request.getParameter("pageNum");

if (pageNum == null) {

            pageNum = "1";

}

        PageHelper.startPage(Integer.parseInt(pageNum), 3);

List<Book> list = bookBiz.findAll();

PageInfo pageInfo = PageInfo.of(list);

        request.setAttribute("pageInfo",pageInfo);

        request.getServletContext().setAttribute("categoryList", categoryList);

        request.getRequestDispatcher("/front/index.jsp").forward(request, response);

}



}

<%@ page contentType="text/html;charset=UTF-8" language="java" %>

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

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

<!DOCTYPE html>

<html>

<head>

    <title>Home</title>

    <!-- Custom Theme files -->

    <meta name="viewport" content="width=device-width, initial-scale=1">

    <meta http-equiv="Content-Type" content="text/html; charset=utf-8"/>

    <meta name="keywords" content=""/>


    <!-- //Custom Theme files -->

    <link href="css/bootstrap.css" type="text/css" rel="stylesheet" media="all">

    <link href="css/style.css" type="text/css" rel="stylesheet" media="all">

    <!-- js -->

    <script src="js/jquery.min.js"></script>

    <script type="text/javascript" src="js/bootstrap-3.1.1.min.js"></script>

    <!-- //js -->

    <!-- cart -->

    <script src="js/simpleCart.min.js"></script>

    <!-- cart -->

    <script type="text/javascript">


    </script>

</head>

<body>

<!--header-->

<div class="header">

    <div class="container">

        <nav class="navbar navbar-default" role="navigation">

            <div class="navbar-header">

                <button type="button" class="navbar-toggle" data-toggle="collapse"

                        data-target="#bs-example-navbar-collapse-1">

                    <span class="sr-only">Toggle navigation</span>

                    <span class="icon-bar"></span>

                    <span class="icon-bar"></span>

                    <span class="icon-bar"></span>

                </button>

                <h1 class="navbar-brand"><a href="">IMOOC</a></h1>

            </div>

            <!--navbar-header-->

            <div class="collapse navbar-collapse" id="bs-example-navbar-collapse-1">

                <ul class="nav navbar-nav">

                    <li><a href="/list.do" class="active">首页</a></li>

                    <!-- 此处分类应从数据库中读取 -->

                    <c:forEach  items="${categoryList}" var="category">

                        <li class="dropdown">

                            <a href="">${category.name}</a>

                        </li>

                    </c:forEach>


<%--                    <li class="dropdown">--%>

<%--                        <a href="">Java</a>--%>

<%--                    </li>--%>

<%--                    <li class="dropdown">--%>

<%--                        <a href="">前端</a>--%>

<%--                    </li>--%>


                </ul>

            </div>

        </nav>



    </div>

    <div class="clearfix"></div>

</div>

</div>

<!--//header-->

<!--banner-->

<div class="banner">

    <div class="container" style="height: 300px">

        <h2 class="hdng">IMOOC <span>图书</span></h2>

        <p>读万卷书,行万里路</p>

        <a href="#">SHOP NOW</a>

        <!--

        <div class="banner-text">

            <img src="../../../images/tushu.jpeg" alt=""/>

        </div>

        -->

    </div>

</div>

<!--//banner-->

<!--gallery-->


<div class="gallery">

    <div class="container">

        <div class="gallery-grids">

            <c:forEach items="${pageInfo.list}" var="book">

            <div class="col-md-3 gallery-grid " style="float:left">

                <a href="#">

                    <img src="${book.imgPath}" class="img-responsive" alt=""/>

                    <div class="gallery-info">

                        <p><span class="glyphicon glyphicon-eye-open" aria-hidden="true"></span> view</p>

                        <a class="shop" href="/detail.do?id=${book.id}">SHOP NOW</a>

                        <div class="clearfix"></div>

                    </div>

                </a>

                <div class="galy-info">

                    <p style="size: 30px">${book.name}</p>

                    <div class="galry">

                        <div class="prices">

                            <h5 class="item_price">¥${book.price}</h5>

                        </div>

                        <div class="rating">

                            <c:forEach begin="1" end="${book.level}" var="i">

                                <span>☆</span>

                            </c:forEach>

                        </div>

                        <div class="clearfix"></div>

                    </div>

                </div>

            </div>

            </c:forEach>

        </div>

        <div align="right">

            <!-- 分页部分可以参照MyBatis拦截器的例子-->


            <div class="col-md-12 gallery-grid glry-two text-right">

                <a href="/list.do?pageNum=1" style="color:#666666;"><span class="glyphicon glyphicon-backward"></span></a>

                <a href="/list.do?pageNum=${pageInfo.pageNum-1}" style="color:#666666;"><span class="glyphicon glyphicon-chevron-left"></span></a>

                共${pageInfo.total}条 ${pageInfo.pageNum}/${pageInfo.pages}

                <a href="/list.do?pageNum=${pageInfo.pageNum+1}" style="color:#666666;"><span class="glyphicon glyphicon-chevron-right"></span></a>

                <a href="/list.do?pageNum=${pageInfo.pages}" style="color:#666666;"><span class="glyphicon glyphicon-forward"></span></a>

            </div>



<%--            <div class="page">--%>

<%--                <div class="container">--%>

<%--                    <ul>--%>

<%--                        <li><a href="">首页</a></li>--%>

<%--                        <li><a href="">上一页</a></li>--%>

<%--                        <li><a href="">当前第1页</a></li>--%>

<%--                        <li><a href="">下一页</a></li>--%>

<%--                        <li><a href="">尾页</a></li>--%>




<%--                    </ul>--%>




<%--                </div>--%>


            </div>


        </div>

    </div>


</div>

<!--//gallery-->

<!--subscribe-->

<!--//subscribe-->

<!--footer-->

<!--//footer-->

<div class="footer-bottom">

    <div class="container">

        <p>Copyright  2017 imooc.com All Rights Reserved | 京ICP备 13046642号-2</p>

    </div>

</div>

</body>

</html>


写回答

1回答

好帮手慕阿满

2021-01-11

同学你好,在如下代码中,是显示上一页,下一页的标签。如果当前页是第1页,那么再按上一页的按钮,页码会变成0,再按上一页,会变成-1。如果当前页是最后一页第3页,再按下一页,页码会变成4。如:

http://img.mukewang.com/climg/5ffbbbe00907d1c809020392.jpg

解决这个问题可以加一个判断,<c:if test={pageInfo.pageNum != 1}>,<c:if test={pageInfo.pageNum != pageInfo.pages}>。如果当前页是第一页,则不显示上一页的标签,如果是最后一页,则不显示下一页的标签,这样就不会出现点击上一页,显示0或者负数,点击下一页,超出总页数的问题。

祝:学习愉快~

0

0 学习 · 8016 问题

查看课程