PageModel.java:
package org.sugite.util;
import java.util.List;
import org.sugite.sysmgr.User;
public class PageModel {
// 总记录数
private int totalRecord;
// 结果集
private List<User> list;
// 第几页
private int pageNo;
// 每页多少条数据
private int pageSize;
public int getTotalRecord() {
return this.totalRecord;
}
public void setTotalRecord(int totalRecord) {
this.totalRecord = totalRecord;
}
public List<User> getList() {
return this.list;
}
public void setList(List<User> list) {
this.list = list;
}
public int getPageNo() {
return pageNo;
}
public void setPageNo(int pageNo) {
this.pageNo = pageNo;
}
public int getPageSize() {
return pageSize;
}
public void setPageSize(int pageSize) {
this.pageSize = pageSize;
}
public int getTotalPages() {
return (totalRecord + pageSize - 1) / pageSize;
}
public int getTopPageNo() {
return 1;
}
public int getPreviousPageNo() {
if (pageNo == 1) {
return 1;
}
return pageNo - 1;
}
public int getNextPageNo() {
if (pageNo == getBottomPageNo()) {
return getBottomPageNo();
}
return pageNo + 1;
}
public int getBottomPageNo() {
return getTotalPages();
}
}
UserManager.java中的部分代码
public PageModel findAllUser(int pageNo, int pageSize) {
String sql = "select * from t_user where user_id <> 'root' order by user_id "
+ "limit " + (pageNo - 1) * pageSize + ", " + pageSize;
// System.out.println("sql=" + sql);
PageModel pageModel = null;
Connection conn = null;
Statement stmt = null;
ResultSet rs = null;
try {
conn = DB.getConn();
stmt = conn.createStatement();
rs = stmt.executeQuery(sql);
List<User> userList = new ArrayList<User>();
while (rs.next()) {
User user = new User();
user.setUserId(rs.getString("user_id"));
user.setUserName(rs.getString("user_name"));
user.setPassword(rs.getString("password"));
user.setContactTel(rs.getString("contact_tel"));
user.setEmail(rs.getString("email"));
user.setCreateDate(rs.getTimestamp("create_date"));
userList.add(user);
}
// 取得所有记录
int totalRecords = getTotalRecords(conn);
pageModel = new PageModel();
pageModel.setList(userList);
pageModel.setTotalRecord(totalRecords);
pageModel.setPageNo(pageNo);
pageModel.setPageSize(pageSize);
} catch (SQLException e) {
e.printStackTrace();
} finally {
DB.close(rs);
DB.close(stmt);
DB.close(conn);
}
return pageModel;
}
/*
* 取得所有记录
*/
private int getTotalRecords(Connection conn) {
String sql = "select count(*) from t_user where user_id <> 'root'";
// System.out.println("sql=" + sql);
int totalRecords = 0;
Statement stmt = null;
ResultSet rs = null;
try {
conn = DB.getConn();
stmt = conn.createStatement();
rs = stmt.executeQuery(sql);
if (rs.next()) {
totalRecords = rs.getInt(1);
}
} catch (SQLException e) {
e.printStackTrace();
} finally {
DB.close(rs);
DB.close(stmt);
DB.close(conn);
}
return totalRecords;
}
jsp代码:
[...]
<%@ page import="org.sugite.sysmgr.*" %>
<%@ page import="org.sugite.util.*" %>
<%
int pageNo = 1;
int pageSize = 3;
String pageNoStr = request.getParameter("pageNo");
if (pageNoStr != null) {
pageNo = Integer.parseInt(pageNoStr);
}
PageModel pageModel = UserManager.getInstance().findAllUser(pageNo, pageSize);
%>
[...]
<script type="text/javascript">
function topPage() {
window.self.location = "user_maint.jsp?pageNo=<%=pageModel.getTopPageNo()%>";
}
function previousPage() {
window.self.location = "user_maint.jsp?pageNo=<%=pageModel.getPreviousPageNo()%>"
}
function nextPage() {
window.self.location = "user_maint.jsp?pageNo=<%=pageModel.getNextPageNo()%>";
}
function bottomPage() {
window.self.location = "user_maint.jsp?pageNo=<%=pageModel.getBottomPageNo()%>";
}
</script>
[...]
<%
List userList = pageModel.getList();
for(Iterator iter = userList.iterator();iter.hasNext();) {
User user = (User)iter.next();
%>
<tr>
<td>
<input type="checkbox" name="selectFlag" class="checkbox1"
value="<%=user.getUserId() %>">
</td>
<td>
<%=user.getUserId() %>
</td>
<td>
<%=user.getUserName() %>
</td>
<td>
<%=user.getContactTel() %>
</td>
<td>
<%=user.getEmail() %>
</td>
<td>
<%=new SimpleDateFormat("yyyy-MM-dd HH:mm:ss").format(user.getCreateDate()) %>
</td>
</tr>
<%
}
%>
[...]
<div align="left">
<font color="#FFFFFF"> 共 <%=pageModel.getTotalPages() %> 页</font>
<font color="#FFFFFF">当前第</font>
<font color="#FF0000"><%=pageModel.getPageNo() %></font>
<font color="#FFFFFF">页</font>
</div>
[...]
<input name="btnTopPage" type="button"
id="btnTopPage" value="|<< " title="首页"
onClick="topPage()">
<input name="btnPreviousPage" type="button"
id="btnPreviousPage" value=" < " title="上页"
onClick="previousPage()">
<input name="btnNextPage" type="button"
id="btnNextPage" value=" > " title="下页" onClick="nextPage()">
<input name="btnBottomPage" type="button"
id="btnBottomPage" value=" >>|" title="尾页"
onClick="bottomPage()">