1分页的javabean
package com.shortmessage.common;
import java.util.Date;
import java.util.ArrayList;
import java.util.List;
import java.util.Map;
import javax.servlet.jsp.jstl.sql.Result;
import com.shortmessage.common.db.SQLHelper;
public class SpilitPager {
/*
* 操作分页的javabean组件
* 1.pageSize 用于确定每页的大小
* 2.currentPage 用于确定当前页
* 3.Object[][] pageList 要分页的记录
*
* */
private int pageSize = 2; //每页的记录数
private int currentPage = 1; //当前页
private Object[][] pageList; //二维数组
//设置要分页的集合
public void setPageList(Object[][] pageList){
this.pageList = pageList;
}
public Object[][] getPageList(){
return pageList;
}
public Object[][] getAll(int userId){
Object[][] pageList = null;
String sql = "select * from tb_message where receiveUser = ?";
Integer[] params = {userId};
Result result = SQLHelper.runExecuteQuery(sql,params);
if(result.getRowCount()>0){
Map[] rows = result.getRows();
pageList = new Object[rows.length][7];
for(int i=0;i<rows.length;i++){
pageList[i][0] = Integer.parseInt(rows[i].get("Id").toString());
pageList[i][1] = (rows[i].get("title").toString());
pageList[i][2] = rows[i].get("content").toString();
pageList[i][3] = Integer.parseInt(rows[i].get("sendUser").toString());
pageList[i][4] = Integer.parseInt(rows[i].get("receiveUser").toString());
pageList[i][5] = Boolean.parseBoolean((rows[i].get("isRead").toString()));
pageList[i][6] = (Date)(rows[i].get("sendTime"));
}
}
return pageList;
}
//根据用户的操作设置当前页
public void setCurrentPage(int how){
switch(how){
case 1: //表示首页
this.currentPage = 1;
break;
case 2: //表示上一页
if(this.currentPage>1){
this.currentPage--;
}
break;
case 3: //表示下一页
if(this.currentPage<this.getPageCount()){
this.currentPage++;
}
break;
case 4:
this.currentPage = this.getPageCount();
break;
}
}
//得到当前要显示的数据集合
public List<Object[]> getCurrentPageList(){
int startIndex = (this.currentPage-1)*this.pageSize; //要显示的第一条记录
int endIndex = (startIndex+this.pageSize); //当前页显示的最后一条记录
if(endIndex>this.pageList.length){ //如果结束位置大于所有的记录
endIndex = this.pageList.length; //则结束位置为总记录数
}
List<Object[]> saveList = new ArrayList<Object[]>();
for(int i=startIndex;i<endIndex;i++){
saveList.add(this.pageList[i]);
}
return saveList;
}
//得到当前页
public int getCurrentPage(){
return this.currentPage;
}
//获取总页数
public int getPageCount(){
int size = this.pageList.length;
return size%this.pageSize==0?size/this.pageSize:size/this.pageSize+1;
}
}
2.jsp页面调用
<!-- 实例化一个操作分页的javabean -->
<jsp:useBean id="spilitPage" class="com.shortmessage.common.SpilitPager" scope="session"/>
<%
UserInfo userInfo = (UserInfo)request.getSession().getAttribute("userInfo");
if(userInfo == null ){
out.println("<script>alert('你还没有登录,请登录!');location.href='login.jsp'</script>");
}else{
UserInfoBo userBo = null; //顶一个userBo,用来获取userName
String dohow = request.getParameter("how");
int how = 1;
if(dohow!=null){
how = Integer.parseInt(dohow);
}
Object[][] pageList = spilitPage.getAll(userInfo.getId());
//spilitPage.setPageList(pageList);
//spilitPage.setCurrentPage(how);
%>
<jsp:setProperty property="pageList" name="spilitPage" value="<%=pageList %>" />
<jsp:setProperty property="currentPage" name="spilitPage" value="<%=how %>" />
<table cellpadding="0" cellspacing="0" border="0" width="550px">
<tr>
<td colspan="4" height="30px">
当前用户:<font color="#ooooFF"> <%=userInfo.getUserName() %>
【<a href="#">发送短信息</a>】 【<a href="exit.jsp">退出</a>】</font>
</td>
</tr>
<tr>
<td height="30px" width="18%">发信人</td>
<td height="30px" width="32%">主题</td>
<td height="30px" width="17%">状态</td>
<td height="30px" width="33%">发送时间</td>
</tr>
<%
List<Object[]> messageList = spilitPage.getCurrentPageList();
for(int i=0;i<messageList.size();i++){
userBo = new UserInfoBoImpl();
UserInfo sendUser = userBo.getUserInfoById(Integer.parseInt(messageList.get(i)[4].toString()));
%>
<tr bgcolor="#CCCCCC">
<td height="30px"><%=sendUser.getUserName() %></td>
<td height="30px">
<a href="ShowMessageServlet?id=<%=messageList.get(i)[0] %>"><%=messageList.get(i)[1] %></a>
</td>
<td height="30px">
<%
if(Boolean.getBoolean(messageList.get(i)[5].toString())){
%>
已读
<%
}else{
%>
未读
<%
}
%>
</td>
<td height="30px"><%=((Date)messageList.get(i)[6]).toLocaleString() %></td>
</tr>
<%
}
%>
<tr>
<td colspan="4" align="right" style="padding-top:5px;">
<a href="index.jsp?how=1">首页</a> <a href="index.jsp?how=2">上一页</a>
<a href="index.jsp?how=3">下一页</a> <a href="index.jsp?how=4">末页</a>
</td>
</tr>
</table>
<%
}
%>