现在的位置: 首页 > 综合 > 正文

ssh2分页

2017年08月09日 ⁄ 综合 ⁄ 共 4166字 ⁄ 字号 评论关闭
[1]实例一:
1  首先新建一个PageModel类
public class PageModel {
 /**
  * 总记录数
  */
 private int total;
 /**
  * 当前页的记录集
  */
 private List datas;
setter,getter....
}
 
2.底层的分页查询用的是Hibernate提供的分页查询.如下:
public interface PersonInfoDao {
 /*
 offset  从第几条记录开始查询
 pagesize  每页显示多少条记录
 */
 public PageModel queryAllPerson(int offset,int pagesize);
}
 
public class PersonInfoHibernateDao extends HibernateDaoSupport implements PersonInfoDao{
 public PageModel queryAllPerson(int offset,int pagesize)
 {
//  得到总记录数
  String queryCountHql="select count(*) from PersonInfo";
  Query query = getSession().createQuery(queryCountHql);
  int total = ((Long)query.uniqueResult()).intValue();
  List datas = getSession().createQuery("from PersonInfo").setFirstResult
(offset).setMaxResults(pagesize).list();
  PageModel pageModel=new PageModel();
  pageModel.setTotal(total);
  pageModel.setDatas(datas);
  return pageModel;
 }
}
//实际上,定义了上面的DAO,及其实现方法后,已经可以在ACTION中应用了.在server及其实际类中定义,纯属自己项目结构决定的
public interface PersonService {
    public PageModel queryAllPerson(int offset,int pagesize);
}
 
public class PersonServiceImp implements PersonService{
 private PersonInfoDao personInfoDao;
 public PersonInfoDao getPersonInfoDao() {
  return personInfoDao;
 }
 public void setPersonInfoDao(PersonInfoDao personInfoDao) {
  this.personInfoDao = personInfoDao;
 }
 public PageModel queryAllPerson(int offset,int pagesize)
 {
  return this.getPersonInfoDao().queryAllPerson(offset, pagesize);
 }
}
 
struts.xml定义:
 <package name="loginPackage" extends="jason-default">
     <action name="jLogin" class="JLogin">
       <result name="success" >/WEB-INF/jason/index.jsp</result>
        <result name="error">/WEB-INF/jason/login.jsp</result>
        <result name="input">/WEB-INF/jason/login.jsp</result>
        <result name="search" type="freemarker">/WEB-
INF/templates/jsearch.ftl</result>
        <result name="pagertaglib">/WEB-INF/jason/pagerTaglib.jsp</result>
        <interceptor-ref name="jLoginStack"/>
     </action>
 </package>
 
在ACTION中定义:
 public String pagerTaglib()
 {
  int pagesize=3;
  int offset=0;
  HttpServletRequest request = ServletActionContext.getRequest();
//  HttpServletResponse response = ServletActionContext.getResponse();
  if(request.getParameter("pager.offset")!=null)
   offset=Integer.parseInt(request.getParameter("pager.offset"));
  
  PageModel pm=this.getPersonService().queryAllPerson(offset, pagesize);
  request.setAttribute("pm", pm);
  return "pagertaglib";
 }
 
显示分页的JSP页面:
<%@ page language="java" import="java.util.*" pageEncoding="utf-8"%>
<%@ taglib prefix="c"    uri="http://java.sun.com/jsp/jstl/core" %>
<%@ taglib prefix="pg" uri="http://jsptags.com/tags/navigation/pager" %>

<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">
<html>
    <head>
        <title>Jason test 分页</title>
    </head>
    
    <body>
        <h1>Jason test 分页</h1>
        <hr/>
        
        <table width="778" border="0" cellPadding="0" cellSpacing="1" bgcolor="#6386d6">
        <tr bgcolor="#EFF3F7">
          <TD align="center">ID</TD>
          <TD align="center">名称</TD>
          <TD align="center">密码</TD>
          <TD align="center">相关操作</TD>
            
        </tr>
        <c:if test="${!empty pm.datas}">
          <c:forEach items="${pm.datas}" var="person">
            <tr bgcolor="#EFF3F7">
              <td align="center">${person.id }</td>
              <td align="center">${person.name }</td>
              <td align="center">${person.password}</td>
              <td align="center">
                修改
                     
                删除</td>
            </tr>
          </c:forEach>
          </c:if>
            <c:if test="${empty pm.datas}">
         <tr>
            <td colspan="5" align="center" bgcolor="#EFF3F7">
            没有找到相应的记录
            </td>
         </tr>
         </c:if>
        </table>
        <pg:pager url="jLogin!pagerTaglib" items="${pm.total}" export="currentPageNumber=pageNumber">
  <pg:first>
    <a href="${pageUrl}">首页</a>
  </pg:first>
  <pg:prev>
    <a href="${pageUrl }">上一页</a>
  </pg:prev>
  <pg:pages>
    <c:choose>
      <c:when test="${currentPageNumber eq pageNumber}">
        <font color="red">${pageNumber }</font>
      </c:when>
      <c:otherwise>
        <a href="${pageUrl }">${pageNumber }</a>
      </c:otherwise>
    </c:choose>
  </pg:pages>
  <pg:next>
    <a href="${pageUrl }">下一页</a>
  </pg:next>
  <pg:last>
    <a href="${pageUrl }">尾页</a>
  </pg:last>
</pg:pager>
    </body>
</html>

抱歉!评论已关闭.