1.所需jar包
2.实现步骤
##1.jsp页面中使用jQuery load函数加载数据。在点击页数按钮调用js函数加载数据。
<script type="text/javascript">
function showRecords(start) {
$("#sp").load("/Pagination/PagingServlet?startPage="+start, function(data) {
var n="<table class=\"table\">";
var nobj=eval(data);
for(var i=0;i<nobj.length;i++){
n=n+"<tr><td>"+nobj[i].id+"</td>";
n=n+"<td>"+nobj[i].title+"</td>";
n=n+"<td>"+nobj[i].date+"</td></tr>";
}
n=n+"</table>";
$("#sp").html(n);
});
}
</script>
##2.2jsp页面中异步获取需要分页数
<script type="text/javascript">
showRecords(0);
$("#pagenum").load("/Pagination/GetPageNum",function(data){
var record_num=parseInt(data);
var page_num=0;
page_num=(((record_num%10)==0)?(record_num/10):(record_num/10+1));
var ulStr="";
for(var i=1;i<=page_num;i++){
ulStr=ulStr+"<li><a href=\"#\" οnclick=\"showRecords("+(i-1)*10+")\">"+i+"</a></li>";
}
$("#pagenum").html(ulStr);
});
</script>
##2.3分页方法
public List<DataRecord> getAllNotice(int start) {
String startStr=String.valueOf(start);
String sql = "SELECT * FROM " + TABLE_NAME+" LIMIT "+startStr+",10";
List<DataRecord> list = new ArrayList<DataRecord>();
try {
st = con.createStatement();
rs = st.executeQuery(sql);
while (rs.next()) {
list.add(new DataRecord(rs.getInt("nt_id"), rs
.getString("nt_title"), rs.getString("nt_date")));
}
return list;
} catch (SQLException e) {
e.printStackTrace();
}
return null;
}
用MySQL的LIMIT关键字实现分页
##2.4获取总记录数
//返回总记录数
public int numberOfRecords(){
String sql="SELECT COUNT(*) FROM "+TABLE_NAME;
try{
pst=con.prepareStatement(sql);
rs=pst.executeQuery();
if(rs.next())
return rs.getInt(1);
}catch(SQLException e){
e.printStackTrace();
}
return 0;
}
在JavaScript中根据记录数计算所需分页数
var page_num=0;
page_num=(((record_num%10)==0)?(record_num/10):(record_num/10+1));
完整代码:http://download.csdn.net/detail/lantiancaiyun/8586217