分页的实现一


XML

 
 
 
<!-- 分页查询用户信息 -->
<select id="findUsersSplit" resultMap="splitInfo" parameterType="java.util.Map">
SELECT userid,loginname,loginpwd,realname,email,user_desc,user_status,deptno,roleid,picpath
FROM users
WHERE roleid&lt;&gt;1 limit #{start},#{ps}
</select>
<resultMap type="com.yztc.li.pojo.Users" id="splitInfo">
    <id property="userid" column="userid"/>
    <result property="loginname" column="loginname"/>
    <result property="loginpwd" column="loginpwd"/>
    <result property="realname" column="realname"/>
    <result property="email" column="email"/>
    <result property="userDesc" column="user_desc"/>
    <result property="userStatus" column="user_status"/>
    <result property="picpath" column="picpath"/>
    <association property="dept" column="deptno" 
        select="com.yztc.li.dao.IDeptDao.findDeptByDeptno"></association>
</resultMap>
<!-- 统计总行数,配合分页使用 -->
<select id="countUsers" resultType="java.lang.Integer">
    SELECT count(userid) FROM users
</select>

<!-- 根据主键chaxun findDeptByDeptno-->

 
 
 
<select id="findDeptByDeptno" parameterType="java.lang.Integer" resultType="com.yztc.li.pojo.Dept">
    SELECT deptno,dname,dept_desc as deptDesc,parentid FROM dept
    WHERE deptno=#{deptno}
</select><!-- 根据主键chaxun       findDeptByDeptno-->
    <select id="findDeptByDeptno" parameterType="java.lang.Integer" resultType="com.yztc.li.pojo.Dept">
        SELECT deptno,dname,dept_desc as deptDesc,parentid FROM dept
        WHERE deptno=#{deptno}
    </select>

接口

 
 
 
/**
* 分页查询
 * @param map
 * @return
 */
List<Users> findUsersSplit(Map<String, Object> map);
/**
 * 配合分页查询使用
 * @return
 */
int countUsers();

Serverce实现类

 
 
 
public List<Users> findUsersSplit(int cp,int ps) {
        HashMap<String , Object> map = new HashMap<String, Object>();
        map.put("start", (cp-1)*ps);
        map.put("ps", ps);
        List<Users> userlist = usersDao.findUsersSplit(map);
        return userlist;
    }

 
 
 
public int countUsers() {
        return usersDao.countUsers();
    }

controller

 
 
 
/**
     * 分页查询
     * @param cp 当前页码,如第2页
     * @param ps 每页最多显示的行数,如5行数据
     * @param model  用来保存数据,在页面上用EL表达式获取
     * @return
     */
    @RequestMapping(value="findUsersSplit")
    public String findUsersSplit(Integer cp,Integer ps,Model model){
        if (cp==null) {
            cp=1;
            ps=5;
        }
        List<Users> userlist = usersServiceImpl.findUsersSplit(cp, ps);
        int count = usersServiceImpl.countUsers();//总行数
        int allpage = (count-1)/ps+1;//总页码数
        model.addAttribute("cp", cp);
        model.addAttribute("ps", ps);
        model.addAttribute("userlist", userlist);
        model.addAttribute("count", count);
        model.addAttribute("allpage", allpage);
        return "page/frame/uc/user_list";
    }
    

JSP

user_list

 
 
 
<!-- 分页开始 -->
        <jsp:include page="/page/frame/split.jsp">
            <jsp:param value="uc/findUsersSplit" name="myurl"/>
        </jsp:include>
            <!-- 分页结束 -->

split.jsp

 
 
 
 <%@ page language="java" contentType="text/html; charset=utf-8" pageEncoding="utf-8"%>
<%@taglib uri="http://java.sun.com/jsp/jstl/core"  prefix="c" %>
<%@taglib uri="http://java.sun.com/jsp/jstl/functions" prefix="fn" %>
<%
    String path = request.getContextPath();
    String basepath = request.getScheme()+"://"+request.getServerName()+":"+request.getServerPort()+path+"/";
%>
<!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
<html>
<head>
<base href="<%=basepath %>" />
<meta http-equiv="Content-Type" content="text/html; charset=utf-8">
<title>Insert title here</title>
<script type="text/javascript" src="js/jquery-1.8.3.js" ></script>
<script>
$(function(){
    //单击首页 <a href="javascript:void(0);" id="firstpage" class="right-font08">首页</a>
    $("#firstpage").click(function(){
        splitform.cp.value = 1;
        splitform.submit();
    });
    
    //上一页  <a href="javascript:void(0);" id="prepage" class="right-font08">上一页</a>
    $("#prepage").click(function(){
        var cp = parseInt(splitform.cp.value);
        if(cp>1){
            splitform.cp.value = cp-1;
            splitform.submit();
        }else{
            alert("没有了");
        }
    });
    
    //下一页   <a href="javascript:void(0);" id="nextpage" class="right-font08">下一页</a>
    $("#nextpage").click(function(){
        var allpage = parseInt(splitform.allpage.value);//总行数
        var cp = parseInt(splitform.cp.value);
        if(cp<allpage){
            splitform.cp.value = cp+1;
            splitform.submit();
        }else{
            alert("没有了");
        }
    });
    
    //尾页  <a href="javascript:void(0);" id="lastpage" class="right-font08">末页</a>
    $("#lastpage").click(function(){
        var allpage = parseInt(splitform.allpage.value);
        splitform.cp.value = allpage;
        splitform.submit();
    });
    
    
    //go提交   <input name="Submit23222" id="sbt" type="button" class="right-button06" value=" " />
    $("#sbt").click(function(){
        
        var allpage = parseInt(splitform.allpage.value);
        var mypage = splitform.mypage.value;
        
        var reg = /^\d+$/;
        if(reg.test(mypage) && parseInt(mypage)>0 && parseInt(mypage)<=allpage){
            splitform.cp.value = mypage;
            splitform.submit();
        }else{
          //<input name="mypage" id="mypage" type="text" class="right-textfield03" size="1" />
            $("#mypage").val("");
            alert("输入有误,请重新输入");
            $("#mypage").focus();//重新获得焦点
        }
    });
});
</script>
</head>
<body>
  <form name="splitform" id="splitform" action="${myurl }" method="post" >
         <input type="hidden" value="${cp }" name="cp" id="cp" />
         <input type="hidden" value="${ps }" name="ps" id="ps" />
         <input type="hidden" value="${count }" name="count" id="count" />
         <input type="hidden" value="${allpage }" name="allpage" id="allpage" />
         <table width="100%" border="0" align="center" cellpadding="0" cellspacing="0" class="right-font08">
            <tr>
                <td width="50%">
                     <span class="right-text09">${allpage }</span> 页 | 
                             <span class="right-text09">${cp }</span> 页
                </td>
                <td width="49%" align="right">
                    [<a href="javascript:void(0);" id="firstpage" class="right-font08">首页</a> | 
                    <a href="javascript:void(0);" id="prepage" class="right-font08">上一页</a> | 
                    <a href="javascript:void(0);" id="nextpage" class="right-font08">下一页</a> | 
                    <a href="javascript:void(0);" id="lastpage" class="right-font08">末页</a>] 转至:
               </td>
               <td width="1%">
                   <table width="20" border="0" cellspacing="0" cellpadding="0">
                    <tr>
                    <td width="1%">
                        <input name="mypage" id="mypage" type="text" class="right-textfield03" size="1" />
                    </td>
                   <td width="87%">
                      <input name="Submit23222" id="sbt" type="button" class="right-button06" value=" " />
                    </td>
                    </tr>
            </table>
                  </td>
                    </tr>
                </table>
       </form>
</body>
</html>


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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值