分页是web应用中最常见的需求,以下是一个完整的分页流程。
1.html页面内容:为分页留一个区域,例如:
2.js代码:代码中的courseName,loadCourseByPage,addCourse,deleteCourse等内容都是项目中逻辑,可以不用理会。
var pageNum = 1; //默认为第一页var courseName = ""; //项目中的变量,可以忽视//页面载入即加载第一页数据$(function() { loadCourseByPage(1, courseName);});//根据页码加载内容function loadCourseByPage(page, courseName) { $ .ajax( { url : path + "customCourse/course", type : "POST", data : { "pageNum" : page, "courseName" : courseName }, success : function(data) { var pageMsg = data.pageMsg; var courses = data.courses; $(".ques_class_list").empty(); //清除原有的数据 $(".page").empty(); if (courses.length == 0 || courses == null) { $(".ques_class_list") .html( "抱歉,您要找的题库不存在
"); $("#page_list").html(""); return; } for ( var i = 0; i < courses.length; i++) { $(".ques_class_list") .append( "" + "" + " 最后编辑于 " + (Math .round((new Date - courses[i].updateDate) / 1000 / 60 / 60)) + "小时 前 " + courses[i].courseName + "
3.java分页信息实体类:pageMsg
package com.tarena.tots.entity;import java.util.ArrayList;import java.util.List;/** * 存储分页相关的信息 * * @author tarena * */public class PageMsg { // 要请求的页码 private Integer pageNum = 1; // 每页的长度 private Integer pageSize = 5; // 总条数 private Integer totalPage; // 对应数据的集合,此项在jsp时用不上(用model绑定),但在ajax发送异步请求时会用到 private List
4.最后是mapper里的内容:
<!-- 分页查询题库 -->
<select id="findAllCourseByPage" parameterType="map"
resultType="com.tarena.tots.entity.Course">
select * from course
<where>
<if test="courseName != null and courseName != ''">
courseName = #{courseName}
</if>
and userId = #{userId} and isDel = 0
</where>
limit #{pageMsg.begin},#{pageMsg.pageSize}
</select>
如此便是一个完整的分页流程了。