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<>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>