ssm从数据库取数据在jsp用分页显示

本文参考了下面的文章,很棒,对我很有用。感谢这位作者!

https://blog.csdn.net/qq_29376717/article/details/78155240

以下是根据我实际情况修改的代码,特地记录以防以后也要用到分页。

前端jsp:(分页条码用的是bootstrap4)

 <div class="page">
        <ul class="pagination">
            <li class="page-item"><a class="page-link" href="article?pageIndex=1">首页</a></li>
            <li class="page-item"><a class="page-link" href="article?pageIndex=${pageUtil.pageIndex>1?pageUtil.pageIndex-1:1}">上一页</a></li>
            <c:forEach begin="1" end="${pageUtil.pageCount}" var="i">
                <c:choose>
                    <c:when test="${i==pageUtil.pageIndex}">
                        <li class="page-item "><a class="page-link" href="article?pageIndex=${i}" style="background: #c90a16;color: white;">${i }</a></li>
                    </c:when>
                    <c:otherwise>
                        <li class="page-item "><a class="page-link" href="article?pageIndex=${i}">${i }</a></li>
                    </c:otherwise>
                </c:choose>
            </c:forEach>
            <li class="page-item"><a class="page-link" href="article?pageIndex=${pageUtil.pageIndex<pageUtil.pageCount?pageUtil.pageIndex+1:pageUtil.pageCount}">下一页</a></li>
            <li class="page-item"><a class="page-link" href="article?pageIndex=${pageUtil.pageCount}">尾页</a></li>
            <li class="page-item disabled"><a class="page-link" href="#">共<span >${pageUtil.pageCount }</span>页</a> </li>
        </ul>
        </div>

controller层:

@RequestMapping(value = "article")
    public ModelAndView pageArticle(ModelAndView model, HttpSession session, HttpServletRequest request) {
        int pageIndex = 1;
        if (request.getParameter("pageIndex") != null)
            pageIndex = Integer.parseInt(request.getParameter("pageIndex"));
        Integer userid = (Integer) session.getAttribute("userid");
        //根据用户id取出数据,10表示pagesize=10,每页10条数据,
        List<Article> listArticle = articleService.getArticlePage(userid, pageIndex, 10);
        System.out.println(listArticle.get(0).getContent());
        //将listArticle封装到pageutil类中
        PageUtil<Article> pageUtil = new PageUtil<Article>();
        pageUtil.setList(listArticle);
        //pagenumber表示共多少条数据
        Integer pageNumber = articleService.getArticlePageCount(userid);
        //pagecount表示多少页
        int pageCount = (int) Math.ceil(pageNumber / 10);
        if (pageCount < 1)
            pageCount = 1;
        pageUtil.setPageCount(pageCount);
        pageUtil.setPageNumber(pageNumber);
        pageUtil.setPageIndex(pageIndex);
        request.setAttribute("pageUtil", pageUtil);
        Collections.reverse(listArticle);
        Collections.copy(listArticle, listArticle);
        model.addObject("listArticle", listArticle);
        model.setViewName("article/article");
        System.out.println("pageNumber:" + pageNumber);
        return model;
    }

service层:

 public List<Article> getArticlePage(Integer userid, int pageIndex, int pageSize) {
        return articleMapper.getArticlePage(userid,(pageIndex-1) * pageSize, pageSize);
    }

    public int getArticlePageCount(Integer userid) {
        return articleMapper.getArticlePageCount(userid);
    }

mapper.java:

  List<Article> getArticlePage(@Param("userid") Integer userid, @Param("pageIndex") int pageIndex,@Param("pageSize") int pageSize);

    int getArticlePageCount(Integer userid);

mapper.xml

    <!-- 分页查询该用户的所有帖子信息 getArticlePage-->
    <select id="getArticlePage" parameterType="com.mandy.model.Article" resultMap="BaseResultMap">
    select fid, title, content, label, time, userid, username, readNum,likes
    from article
    where userid = #{userid,jdbcType=INTEGER}
   limit #{pageIndex,jdbcType=INTEGER},#{pageSize,jdbcType=INTEGER}
  </select>
<!--  SELECT COUNT(*) FROM 表名称。getArticlePageCount-->
  <select id="getArticlePageCount" parameterType="java.lang.Integer" resultType="Integer">
    select count(*)
    from article
    where userid = #{userid,jdbcType=INTEGER}
  </select>

运行结果:(只展示分页部分,内容部分省...)

  • 3
    点赞
  • 9
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值