SSM之分页模板

本文介绍了如何在SSM(Spring+SpringMVC+MyBatis)框架中实现分页模板。通过创建分页POJO,提供源码下载链接,帮助读者理解并实践分页操作。
摘要由CSDN通过智能技术生成

SSM(Spring+SpringMVC+MyBatis)框架集由Spring、SpringMVC、MyBatis三个开源框架整合而成,常作为数据源较简单的web项目的框架。下面我简单说说利用SSM创建一个分页模板,内附源码下载地址:

第一步:创建分页的pojo:

/**
 * @filename PageDemo.java
 * @author 冯琪
 * @date 2017年11月16日 下午9:05:18
 * @version 1.0
 * Copyright (C) 2017 冯琪
 */
package com.auth.util;
import java.util.List;
public class PageDemo {
	//每页显示条数
	private int pageNum=8;
	//总条数
	private int totalNum=0;
	//当前页码
	private int currNo=1;
	//总页数
	private int totalPage=0;	
	//查询下标位置,limit 中的第一个参数
	@SuppressWarnings("unused")
	private int pageIndex=0;
	//存储返回的集合对象
	private List<?> resultList;
	//请求地址, user/list.action
	private String url;
	//请求参数(搜索条件参数的封装), &userCode=admin&userType=1&userState=1
	private String params;
	public PageDemo() {		
	}	
	public PageDemo(int totalNum, int currNo) {
		this.totalNum = totalNum;
		this.currNo = currNo;
	}	
	public PageDemo(int pageNum, int totalNum, int currNo, List<?> resultList, String url, String params) {
		super();
		this.pageNum = pageNum;
		this.totalNum = totalNum;
		this.currNo = currNo;
		this.resultList = resultList;
		this.url = url;
		this.params = params;
	}
	public int getPageNum() {
		return pageNum;
	}
	public void setPageNum(int pageNum) {
		this.pageNum = pageNum;
	}
	public int getTotalNum() {
		return totalNum;
	}
	public void setTotalNum(int totalNum) {
		this.totalNum = totalNum;
	}
	//当前页码
	public int getCurrNo() {
		if(currNo==0){
			currNo=1;
		}
		return currNo;
	}
	public void setCurrNo(int currNo) {
		this.currNo = currNo;
	}
	//总页数
	public int getTotalPage() {
		totalPage=(totalNum%pageNum==0)?(totalNum/pageNum):(totalNum/pageNum)+1;
		return totalPage;
	}
	public void setTotalPage(int totalPage) {
		this.totalPage = totalPage;
	}
	//查询下标位置
	public int getPageIndex() {
		return pageNum*(currNo-1);
	}
	public void setPageIndex(int pageIndex) {
		this.pageIndex = pageIndex;
	}

	public List<?> getResultList() {
		return resultList;
	}

	public void setResultList(List<?> resultList) {
		this.resultList = resultList;
	}

	public String getUrl() {
		return url;
	}

	public void setUrl(String url) {
		this.url = url;
	}

	public String getParams() {
		return params;
	}

	public void setParams(String params) {
		this.params = params;
	}
}

第二步:随便创建一个用户的pojo,我以用户分页为例:

/**
 * @filename UserInfo.java
 * @author 冯琪
 * @date 2017年11月14日 下午1:20:02
 * @version 1.0
 * Copyright (C) 2017 冯琪
 * 用户Javabean
 */
package com.auth.entity;
import java.util.List;
public class UserInfo {
	private Integer userId;
	private String nickName;
	private String userCore;
	private String userPwd;
	private String userType;
	private String userState;
	private String isDelete;
	private Integer createBy;
	private String createTime;
	private Integer updateBy;
	private String updateTime;
	private List<UserInfo>  userMess;
	public UserInfo() {
		
	}
	public UserInfo(Integer userId, String nickName, String userCore,
			String userPwd, String userType, String userState, String isDelete,
			Integer createBy, String createTime, Integer updateBy,
			String updateTime, List<UserInfo> userMess) {
		super();
		this.userId = userId;
		this.nickName = nickName;
		this.userCore = userCore;
		this.userPwd = userPwd;
		this.userType = userType;
		this.userState = userState;
		this.isDelete = isDelete;
		this.createBy = createBy;
		this.createTime = createTime;
		this.updateBy = updateBy;
		this.updateTime = updateTime;
		this.userMess = userMess;
	}
	public Integer getUserId() {
		return userId;
	}
	public void setUserId(Integer userId) {
		this.userId = userId;
	}
	public String getNickName() {
		return nickName;
	}
	public void setNickName(String nickName) {
		this.nickName = nickName;
	}
	public String getUserCore() {
		return userCore;
	}
	public void setUserCore(String userCore) {
		this.userCore = userCore;
	}
	public String getUserPwd() {
		return userPwd;
	}
	public void setUserPwd(String userPwd) {
		this.userPwd = userPwd;
	}
	public String getUserType() {
		return userType;
	}
	public void setUserType(String userType) {
		this.userType = userType;
	}
	public String getUserState() {
		return userState;
	}
	public void setUserState(String userState) {
		this.userState = userState;
	}
	public String getIsDelete() {
		return isDelete;
	}
	public void setIsDelete(String isDelete) {
		this.isDelete = isDelete;
	}
	public Integer getCreateBy() {
		return createBy;
	}
	public void setCreateBy(Integer createBy) {
		this.createBy = createBy;
	}
	public String getCreateTime() {
		return createTime;
	}
	public void setCreateTime(String createTime) {
		this.createTime = createTime;
	}
	public Integer getUpdateBy() {
		return updateBy;
	}
	public void setUpdateBy(Integer updateBy) {
		this.updateBy = updateBy;
	}
	public String getUpdateTime() {
		return updateTime;
	}
	public void setUpdateTime(String updateTime) {
		this.updateTime = updateTime;
	}
	public List<UserInfo> getUserMess() {
		return userMess;
	}
	public void setUserMess(List<UserInfo> userMess) {
		this.userMess = userMess;
	}
	@Override
	public String toString() {
		return "UserInfo [userId=" + userId + ", nickName=" + nickName
				+ ", userCore=" + userCore + ", userPwd=" + userPwd
				+ ", userType=" + userType + ", userState=" + userState
				+ ", isDelete=" + isDelete + ", createBy=" + createBy
				+ ", createTime=" + createTime + ", updateBy=" + updateBy
				+ ", updateTime=" + updateTime + ", userMess=" + userMess + "]";
	}
}

第三步:在用户的mapper层添加分页的接口和实现类:

/**
	 * 查询用户总数量
	 * 
	 */
	public int selectUserCount(HashMap<String,Object> hashmap);
	/**
	 * 分页查询用户信息
	 * 
	 */
	public List<UserInfo> selectUserPage(HashMap<String,Object> hashmap);

 <!-- 查询用户的总人数 -->
  <select id="selectUserCount" parameterType="hashmap" resultType="int" >
  	   SELECT COUNT(0) FROM `user_info` 
  	    <where>	
	 	<if test="userCore!=null and userCore!=''">
	 		 nick_name=#{userCore}
	 	</if>
	 	<if test="userType!=null and userType!=''">
	 		and user_type=#{userType}
	 	</if>
	 	<if test="userState!=null and userState!=''">
	 		and user_state=#{userState}
	 	</if>
	 	and is_delete='0'
  	</where>
  </select>
   <!-- 分页查询用户信息 -->
   <select id="selectUserPage" parameterType="hashmap" resultType="UserInfo">
     select user_id AS userId,nick_name AS nickName,user_code AS userCore,user_pwd AS userPwd,user_type AS userType,user_state AS userState,is_delete AS isDelete,create_by AS createBy,
	 create_time AS createTime,update_by AS updateBy,update_time AS updateTime
      from user_info  
      <where>	
	 	<if test="userCore!=null and userCore!=''">
	 		and nick_name=#{userCore}
	 	</if>
	 	<if test="userType!=null and userType!=''">
	 		and user_type=#{userType}
	 	</if>
	 	<if test="userState!=null and userState!=''">
	 		and user_state=#{userState}
	 	</if>
	 	and is_delete='0'
  	</where>
      limit #{pageIndex},#{pageNum}
  </select>
第四步:在用户的service层添加接口和实现类:

/**
	 * 查询用户总人数
	 * 
	 */
	public int selectUserCount(HashMap<String,Object> hashmap);
	/**
	 * 分页查询用户信息
	 * 
	 */
	public List<UserInfo> selectUserPage(HashMap<String,Object> hashmap);

/**
	 * 分页查询用户总人数
	 * 
	 */
	public int selectUserCount(HashMap<String,Object> hashmap){
		return userMapper.selectUserCount(hashmap);
	}
	/**
	 * 分页查询用户信息
	 * 
	 */
	public List<UserInfo> selectUserPage(HashMap<String,Object> hashmap){
		return userMapper.selectUserPage(hashmap);
	}

第五步:在用户控制层添加分页方法:

/**
	 * 
	*@comment 更改人员状态
	*@author 冯琪
	*@date 2017年11月19日 下午6:49:37
	*@param empID
	*@param status
	*@version 1.0
	 */
	@RequestMapping("/user-list")
	public ModelAndView userPageList(HttpServletRequest request,UserInfo userInfo){
		ModelAndView mov=new ModelAndView("user-list");
		HashMap<String,Object> map=new HashMap<String,Object>();
		//获取当前页码
		String pageNo=request.getParameter("currNo");
		//每页显示条数
		pageNum="8";
		//获取搜索框内容
		String userCore=request.getParameter("userCore");
		String userType=request.getParameter("userType");
		String userState=request.getParameter("userState");
		System.out.println("用户名"+userCore);
		int currNo=1;
		if(pageNo!=null && !"".equals(pageNo)){
			 currNo=Integer.parseInt(pageNo);
		}
		StringBuffer sbf=new StringBuffer();
		//角色列表
		List<RoleInfo> roleList=roleService.selectAllRole(null);
		//通过StringBuffer封装参数
		if(userCore!=null && userCore!=""){
			sbf.append("&userCode=").append(userCore);
		} 
		if(userType!=null && userType!=""){
			sbf.append("&userType=").append(userType);
		} 
		if(userState!=null && userState!=""){
			sbf.append("&userState=").append(userState);
		}
		map.put("userCore", userCore);
		map.put("userType", userType);
		map.put("userState", userState);
		int totalCount=userService.selectUserCount(map);
		//查询商品列表信息
		PageDemo pageBean=new PageDemo(totalCount,currNo);
		PageDemo page=new PageDemo();
		//每页显示条数
		page.setPageNum(Integer.parseInt(pageNum));
		//查询总条数
		page.setTotalNum(userService.selectUserCount(map));
		//当前页码
		page.setCurrNo(currNo);
		map.put("pageIndex", pageBean.getPageIndex());
		map.put("pageNum", pageBean.getPageNum());
		//获取用户列表
		page.setResultList(userService.selectUserPage(map));
		//请求地址
		page.setUrl("user/user-list.action");
		mov.addObject("page", page);
		mov.addObject("roleList", roleList);
		mov.addObject("UserList", userService.selectUserPage(map));
		return mov;
	}

第六步:创建一个jsp页面,用于写分页的实现页面:

<%@ page language="java" contentType="text/html; charset=UTF-8"%>
<%@taglib uri="http://java.sun.com/jsp/jstl/core" prefix="c"%> 
总 ${page.totalNum} 条  
每页 ${page.pageNum} 条  
总 ${page.totalPage} 页   
第 ${page.currNo} 页  
<c:if test="${page.currNo==1}">首页</c:if>
<c:if test="${page.currNo!=1}"><a href="${pageContext.request.contextPath}/${page.url}?${page.params}&currNo=1">首页</a></c:if>
 
<c:if test="${page.currNo==1}">上一页</c:if>
<c:if test="${page.currNo!=1}"><a href="${pageContext.request.contextPath}/${page.url}?${page.params}&currNo=${page.currNo-1}">上一页</a></c:if>
 
<c:if test="${page.currNo==page.totalPage}">下一页</c:if>
<c:if test="${page.currNo!=page.totalPage}"><a href="${pageContext.request.contextPath}/${page.url}?${page.params}&currNo=${page.currNo+1}">下一页</a></c:if>
 
<c:if test="${page.currNo==page.totalPage}">尾页</c:if>
<c:if test="${page.currNo!=page.totalPage}"><a href="${pageContext.request.contextPath}/${page.url}?${page.params}&currNo=${page.totalPage}">尾页</a></c:if>
 
 第<select οnchange="location.href='${pageContext.request.contextPath}/${page.url}?${page.params}&currNo='+this.value">
	<c:forEach var="selectvalue" begin="1" end="${page.totalPage}" step="1">
		<option value="${selectvalue}" ${page.currNo eq selectvalue ?"selected='selected'":""}>
			${selectvalue}   
		</option>
	</c:forEach>
</select>
页 

第七步:在用户页面引用上一步的JSP页面模板:

<jsp:include page="standard.jsp"/>

第八步:最终效果:


源码下载地址:点我下载

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值