jstl 的简单使用 和 分页的简单实现

使用jstl步骤:

  1. 导入四个jar包
    这里写图片描述
  2. 在jsp页面中引用
<%@ taglib uri="http://java.sun.com/jsp/jstl/core" prefix="c" %>

jstl的一些简单标签

        <!-- 输出文字到页面 ,不能使用el表达式-->
        <c:out value="我们学习jstl"></c:out>

        <!-- 给变量赋值 -->
        <c:set value="tong0" var="name"></c:set>
        <c:out value="我是:${name }"></c:out>

        <!-- if标签 -->
        <c:if test="${name == 'tong' }">
            <h1>${name }你好</h1>
        </c:if>

        <!-- choose标签 实现多重判断 -->
        <c:choose>
            <c:when test="${name == 'tong' }">
                <h1>tong 你请吃饭</h1>
            </c:when>
            <c:when test="${name == 'Jum' }">
                <h1>jum 去k歌</h1>
            </c:when>
            <c:when test="${name == 'li' }">
                <h1>li 来打游戏</h1>
            </c:when>
            <c:otherwise>
                <h1>不好意思,你是谁?</h1>
            </c:otherwise>
        </c:choose>

        <!-- 固定次数的循环  -->
        <c:forEach var="i" begin="10" end="20" step="1">
            <p style="font-size: ${i}px">这是段落${i }</p>
        </c:forEach>

        <%
            IUserDAOImpl dao = new IUserDAOImpl();
            List<User>  users = dao.selectAllUsers();
            pageContext.setAttribute("users", users);

        %>
        <c:forEach var="user" items="${users }">
            <p>手机号:${user.user_tel },
            密码:${user.user_password }
        </c:forEach>

分页的实现
好处:提高加载速度,方便用户操作。
思路:
1)计算总的页数 = 总行数 / 每页条数
2)添加DAO层分页方法,使用limit关键字实现分页查询
查询总行数
3)在Service层添加分页方法,对分页数据进行封装
4)定义Servlet调用分页功能执行查询
5)JSP获得分页对象,绘制超链接

package com.wedding.bean;

import java.util.List;
/*
 * 分页的包装类page
 */
public class Page<T> {

    public static final int PAGE_SIZE = 10;
    private List<T> data;
    private int pageCount;
    private int currentPage;
    public List<T> getData() {
        return data;
    }

    public void setData(List<T> data) {
        this.data = data;
    }

    public int getPageCount() {
        return pageCount;
    }

    public void setPageCount(int pageCount) {
        this.pageCount = pageCount;
    }

    public int getCurrentPage() {
        return currentPage;
    }

    public void setCurrentPage(int currentPage) {
        this.currentPage = currentPage;
    }
}
@Override
    public Page<Hotel> findHotelsByPage(int pageNo, int pageSize) {

        int total = hotelDao.selectCount();
        int pageCount = total % Page.PAGE_SIZE == 0 ?
                total / Page.PAGE_SIZE : total/ Page.PAGE_SIZE + 1;
        List<Hotel> hotels = hotelDao.selectHotelsByPage((pageNo - 1) * Page.PAGE_SIZE,pageSize);
        Page<Hotel> page = new Page<Hotel>();
        page.setCurrentPage(pageNo);
        page.setData(hotels);
        page.setPageCount(pageCount);
        return page;
    }

使用bootstrap优化分页

<div style="width:100%;text-align:center">
     <nav aria-label="Page navigation">
      <ul class="pagination">
        <c:choose>
            <c:when test="${page.currentPage == 1 }">
                <li class="disabled">
            </c:when>
            <c:otherwise>
                <li>
            </c:otherwise>
        </c:choose>
            <a href="findHotelsByPage.do?pageNo=${page.currentPage-1 }" aria-label="Previous">
            <span aria-hidden="true">&laquo;</span>
          </a>
        </li>
            <c:forEach var="i" begin="1" end="${page.pageCount }" step="1">
                <c:choose>
                    <c:when test="${page.currentPage==i}">
                        <li class="active">
                    </c:when>
                    <c:otherwise>
                        <li>
                    </c:otherwise>
                </c:choose>
                <a href="findHotelsByPage.do?pageNo=${i }">${i }</a></li>
            </c:forEach>
        <c:choose>
            <c:when test="${page.currentPage == page.pageCount }">
                <li class="disabled">
            </c:when>
            <c:otherwise>
                <li>
            </c:otherwise>
        </c:choose>
          <a href="findHotelsByPage.do?pageNo=${page.currentPage+1 }" aria-label="Next">
            <span aria-hidden="true">&raquo;</span>
          </a>
        </li>
      </ul>
    </nav>
</div>

猜你喜欢

转载自blog.csdn.net/qq_33460865/article/details/82656175