ssm框架實現分頁(limit)
阿新 • • 發佈:2019-01-11
pojo層新建類PageBean
package com.qut.pojo;
import java.util.List;
public class PageBean<T>{
private int pageNumber; //總記錄
private int pageCount; //總頁數
private Integer pageIndex; //當前頁
private int pageSize; //每頁幾條資料
private List<T>list; //當前頁的資料
public int getPageNumber() {
return pageNumber;
}
public void setPageNumber(int pageNumber) {
this.pageNumber = pageNumber;
}
public int getPageCount() {
return pageCount;
}
public void setPageCount(int pageCount) {
this.pageCount = pageCount;
}
public Integer getPageIndex() {
return pageIndex;
}
public void setPageIndex(Integer pageIndex) {
this.pageIndex = pageIndex;
}
public int getPageSize() {
return pageSize;
}
public void setPageSize(int pageSize) {
this.pageSize = pageSize;
}
public List<T> getList() {
return list;
}
public void setList(List<T> list) {
this.list = list;
}
}
實體類Dao層新增兩個方法
//分頁顯示所有崗位
public List<Position> showlist(int index);
//計算資料總數
public int pagecount();
xml新增兩條語句
<select id="countIndex" parameterType="com.qut.pojo.Position" resultType="int">
select count(*) from Position where 1=1
<if test='p_name!=null and p_name!=""'>
and p_name = #{p_name}
</if>
<if test='p_no!=0'>
and p_no = #{p_no}
</if>
<if test='p_type!=null and p_type!=""'>
and p_type = #{p_type}
</if>
</select>
<select id="showlist" parameterType="int" resultType="com.qut.pojo.Position">
select *
from Position limit #{index},10
</select>
Service層
public List<Position> showlist(int index);
public int pagecount();
ServiceImpl層
public List<Position> showlist(int index) {
// TODO Auto-generated method stub
return poMapper.showlist(index);
}
public int pagecount() {
// TODO Auto-generated method stub
return poMapper.pagecount();
}
Controller層
@RequestMapping("/page")
public ModelAndView showlist(HttpServletRequest request){
ModelAndView view = new ModelAndView();
Integer pageIndex = 1;
int pageSize = 4;
PageBean<Position> pageUtil = new PageBean<Position>();
List<Position> list = new ArrayList<Position>();
if(request.getParameter("pageIndex")!=null){
pageIndex = Integer.parseInt((String)request.getParameter("pageIndex"));
}
pageUtil.setPageIndex(pageIndex);
int number = ps.pagecount();
pageUtil.setPageNumber(number);
pageUtil.setPageSize(pageSize);
if((int)pageUtil.getPageNumber() % (int)pageUtil.getPageSize() ==0){
pageUtil.setPageCount((int) Math.ceil((double) (pageUtil
.getPageNumber() / pageUtil.getPageSize())));
}else{
pageUtil.setPageCount((int) Math.ceil((double) (pageUtil
.getPageNumber() / pageUtil.getPageSize()))+1);
}
int index = (pageIndex-1)*pageSize;
list = ps.showlist(index);
pageUtil.setList(list);
view.addObject("pageUtil",pageUtil);
view.setViewName("show");
return view;
}
jsp遍歷程式碼
<c:forEach items="${pageUtil.list}" var="c" begin="0" end="4">
<!--顯示四條,這裡要與controller中的pageSize以及xml中sql查詢的條數對應-->
<span class="STYLE1">${c.p_name}</span>
<span class="STYLE1">${c.p_type}</span>
<span class="STYLE1">${c.p_num}</span>
</c:forEach>
jsp顯示共多少頁,現在在第幾頁,首頁,上一頁,下一頁以及下一頁程式碼
<font size="2">共 ${pageUtil.pageCount} 頁</font> <font size="2">第
${pageUtil.pageIndex} 頁</font> <a href="page.action?pageIndex=1&doaction=woaiyuxue">首頁</a>
<c:choose>
<c:when test="${pageUtil.pageIndex - 1 > 0}">
<a href="page.action?pageIndex=${pageUtil.pageIndex - 1}&doaction=woaiyuxue">上一頁</a>
</c:when>
</c:choose>
<c:choose>
<c:when test="${pageUtil.pageCount==0}">
<a href="page.action?pageIndex=${pageUtil.pageIndex }&doaction=woaiyuxue">下一頁</a>
</c:when>
<c:when test="${pageUtil.pageIndex + 1 <= pageUtil.pageCount}">
<a href="page.action?pageIndex=${pageUtil.pageIndex+1}&doaction=woaiyuxue">下一頁</a>
</c:when>
</c:choose>
<c:choose>
<c:when test="${page.pageCount==0}">
<a href="page.action?pageIndex=${pageUtil.pageIndex}&doaction=woaiyuxue">尾頁</a>
</c:when>
<c:otherwise>
<a href="page.action?pageIndex=${pageUtil.pageCount}&doaction=woaiyuxue">尾頁</a>
</c:otherwise>
</c:choose>