更新時(shí)間:2021-06-24 13:38:53 來(lái)源:動(dòng)力節(jié)點(diǎn) 瀏覽1454次
1.首先創(chuàng)建一個(gè)分頁(yè)的工具類
package cn.page.po;
import java.io.Serializable;
public class Page implements Serializable {
private static final long serialVersionUID = -3198048449643774660L;
private int pageNow = 1; // 當(dāng)前頁(yè)數(shù)
private int pageSize = 4; // 每頁(yè)顯示記錄的條數(shù)
private int totalCount; // 總的記錄條數(shù)
private int totalPageCount; // 總的頁(yè)數(shù)
@SuppressWarnings("unused")
private int startPos; // 開(kāi)始位置,從0開(kāi)始
/**
* 通過(guò)構(gòu)造函數(shù) 傳入 總記錄數(shù) 和 當(dāng)前頁(yè)
* @param totalCount
* @param pageNow
*/
public Page(int totalCount, int pageNow) {
this.totalCount = totalCount;
this.pageNow = pageNow;
}
/**
* 取得總頁(yè)數(shù),總頁(yè)數(shù)=總記錄數(shù)/每頁(yè)顯示記錄的條數(shù)
* @return
*/
public int getTotalPageCount() {
totalPageCount = getTotalCount() / getPageSize();
return (totalCount % pageSize == 0) ? totalPageCount //總頁(yè)數(shù)
: totalPageCount + 1;
}
public void setTotalPageCount(int totalPageCount) {
this.totalPageCount = totalPageCount;
}
public int getPageNow() {
return pageNow;
}
public void setPageNow(int pageNow) {
this.pageNow = pageNow;
}
public int getPageSize() {
return pageSize;
}
public void setPageSize(int pageSize) {
this.pageSize = pageSize;
}
public int getTotalCount() {
return totalCount;
}
public void setTotalCount(int totalCount) {
this.totalCount = totalCount;
}
/**
* 取得選擇記錄的初始位置
* @return
*/
public int getStartPos() {
return (pageNow - 1) * pageSize;
}
public void setStartPos(int startPos) {
this.startPos = startPos;
}
}
2.寫mapper.xml文件
<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE mapper
PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN"
"http://mybatis.org/dtd/mybatis-3-mapper.dtd">
<mapper namespace="cn.page.mapper.UserMapper">
<resultMap type="cn.page.po.User" id="userMap">
<id property="id" column="id" />
<result property="emplnumb" column="emplnumb" />
<result property="username" column="username" />
<result property="password" column="password" />
<result property="address" column="address" />
</resultMap>
<!-- 分頁(yè)SQL語(yǔ)句 -->
<select id="selectUserByPage" resultMap="userMap">
select *
from user limit #{startPos},#{pageSize}
</select>
<!-- 取得記錄的總數(shù) -->
<select id="getUserCount" resultType="long">
SELECT COUNT(*) FROM user
</select>
</mapper>
3.mapper接口
/**
* 使用注解方式傳入多個(gè)參數(shù)
* @param page
* @return startPos},#{pageSize}
*/
public List<User> selectUserByPage(@Param(value="startPos") Integer startPos,
@Param(value="pageSize") Integer pageSize);
/**
* 用戶總數(shù)
*/
public long getUserCount();
4.service接口與實(shí)現(xiàn)類
void showUserByPage(HttpServletRequest request,Model model);
@Autowired
private UserMapper userMapper;
@Override
public void showUserByPage(HttpServletRequest request, Model model) {
// TODO Auto-generated method stub
String pageNow = request.getParameter("pageNow");
Page page = null;
List<User> user = new ArrayList<User>();
//查詢用戶總數(shù)
int totalCount = (int) userMapper.getUserCount();
if (pageNow != null) {
page = new Page(totalCount, Integer.parseInt(pageNow));
user = this.userMapper.selectUserByPage(page.getStartPos(), page.getPageSize());
} else {
page = new Page(totalCount, 1);
user = this.userMapper.selectUserByPage(page.getStartPos(), page.getPageSize());
}
model.addAttribute("user", user);
model.addAttribute("page", page);
}
5.controller方法
@Controller
public class UserController {
@Autowired
private UserService userService;
@RequestMapping("/pagingUser.action")
public String pagingUser(HttpServletRequest request,Model model){
userService.showUserByPage(request, model);
return "pagingUser";
}
}
6.頁(yè)面顯示
<c:forEach items="${user }" var="user">
<tr>
<td>${user.emplnumb }</td>
<td>${user.username }</td>
<td>${user.address }</td>
<td>${user.telephone }</td>
</tr>
</c:forEach>
</table>
<div align="center">
<font size="2">共 ${page.totalPageCount} 頁(yè)</font> <font size="2">第
${page.pageNow} 頁(yè)</font> <a href="${pageContext.request.contextPath}/pagingUser.action?pageNow=1">首頁(yè)</a>
<c:choose>
<c:when test="${page.pageNow - 1 > 0}">
<a href="${pageContext.request.contextPath}/pagingUser.action?pageNow=${page.pageNow - 1}">上一頁(yè)</a>
</c:when>
<c:when test="${page.pageNow - 1 <= 0}">
<a href="${pageContext.request.contextPath}/pagingUser.action?pageNow=1">上一頁(yè)</a>
</c:when>
</c:choose>
<c:choose>
<c:when test="${page.totalPageCount==0}">
<a href="${pageContext.request.contextPath}/pagingUser.action?pageNow=${page.pageNow}">下一頁(yè)</a>
</c:when>
<c:when test="${page.pageNow + 1 < page.totalPageCount}">
<a href="${pageContext.request.contextPath}/pagingUser.action?pageNow=${page.pageNow + 1}">下一頁(yè)</a>
</c:when>
<c:when test="${page.pageNow + 1 >= page.totalPageCount}">
<a href="${pageContext.request.contextPath}/pagingUser.action?pageNow=${page.totalPageCount}">下一頁(yè)</a>
</c:when>
</c:choose>
<c:choose>
<c:when test="${page.totalPageCount==0}">
<a href="${pageContext.request.contextPath}/pagingUser.action?pageNow=${page.pageNow}">尾頁(yè)</a>
</c:when>
<c:otherwise>
<a href="${pageContext.request.contextPath}/pagingUser.action?pageNow=${page.totalPageCount}">尾頁(yè)</a>
</c:otherwise>
</c:choose>
</div>
以上就是動(dòng)力節(jié)點(diǎn)小編介紹的"SSM框架分頁(yè)的實(shí)現(xiàn)方法",希望對(duì)大家有幫助,想了解更多可觀看SSM實(shí)戰(zhàn)視頻教程學(xué)習(xí),如有疑問(wèn),請(qǐng)?jiān)诰€咨詢,有專業(yè)老師隨時(shí)為您服務(wù)。
0基礎(chǔ) 0學(xué)費(fèi) 15天面授
有基礎(chǔ) 直達(dá)就業(yè)
業(yè)余時(shí)間 高薪轉(zhuǎn)行
工作1~3年,加薪神器
工作3~5年,晉升架構(gòu)
提交申請(qǐng)后,顧問(wèn)老師會(huì)電話與您溝通安排學(xué)習(xí)
初級(jí) 202925
初級(jí) 203221
初級(jí) 202629
初級(jí) 203743