使用javabean实现分页

来源:互联网 发布:三峡宜昌广电网络 编辑:程序博客网 时间:2024/04/30 11:32

 

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


 

原创粉丝点击