struts2 + hibernate + spring 使用pager-taglib 分页

第一步:

  pager-taglib 分页需要从其官方下载相应的插件:  http://jsptags.com  解压出来将pager-taglib.jar包拷贝到lib目录下,

 

第二部:

新建StudentImpl类,用来获取要分页的数据和数据库中数据总的条目数,并继承Spring对hibernate支持来获得session对象

public class IStudentDAOImpl extends HibernateDaoSupport{

 

public int getNumber() {
  
  String hql = "select count(*) from Student";
  
  Session session = this.getSession();
  
  Query query = session.createQuery(hql);
     int total = ((Number)query.uniqueResult()).intValue();
  
  return total;
 }

 

@SuppressWarnings("unchecked")
 public List<Student> finStudents(int offset, int pageSize) {
  String hql = "from Student";
  
  Session session = this.getSession();
  List<Student> list = session.createCriteria(Student.class).setFirstResult(offset).setMaxResults(pageSize).list();
  
  return list;
 }

 public void saveStudent(Student student) {
  
  this.getHibernateTemplate().save(student);

 }

 

 

}

 

 

第三部:  书写业务层类:  并继承IStudentDAOImpl 实现其方法

 

public class IStudentServiceImpl implements IStudentService {

 

        public IStudentDAOImpl studentDAO;

 

        public List<Student> getStudents(int offset, int pageSize) {
  
            return studentDAO.finStudents(offset, pageSize);
        }

 

 

       public int getNumber() {
  
          return studentDAO.getNumber();
      }

 

    

       public void setIStudentDAOImpl(IStudentDAOImpl studentDAO){

            this.studentDAO = studentDAO;

      }

 

 第四步:书写Action

      public class StudentAction extends ActionSupport {

        private IStudentServiceImpl service;

         //商品总的记录数
         private int  total;
        //每页要显示的数据条目
        private List<Student> pageStudents;
         //从第几条数据开始显示
         private int offset;
         //每页显示的条目
         private int pageSize = 2;

 

              public String list() throws Exception{
  
          total = service.getNumber();
            HttpServletRequest request = ServletActionContext.getRequest();

  
             if(request.getParameter("pager.offset") == null)
            {
               offset = 0;
            }

           else
           {
            offset = Integer.parseInt(request.getParameter("pager.offset"));
            }
  
          students = service.getStudents(offset, pageSize);
         ActionContext.getContext().put("students", students);
         return "list";
      }

 

 

      }

 

    第五部:写list.jsp页面

    <!--

          头部引入

         <%@ taglib uri="/struts-tags" prefix="s" %>
<%@ taglib  uri="http://jsptags.com/tags/navigation/pager" prefix="pg"%>
<%@ taglib  uri="http://java.sun.com/jsp/jstl/core"  prefix="c" %> 

    -->

       <h2 align="center"><font color="red">学生信息预览表</font></h2>
  <table border="1" align="center">
   <tr>
    <td>编号</td>
    <td>姓名</td>
    <td>年龄</td>
    <td>性别</td>
    <td>学校</td>
    <td>入学日期</td>
   </tr>
   <s:iterator value="#students" id="student">
   <tr>
    <td><s:property value="#student.id"/></td>
    <td><s:property value="#student.name"/></td>
    <td><s:property value="#student.age"/></td>
    <td><s:property value="#student.sex"/></td>
    <td><s:property value="#student.school"/></td>
    <td><s:property value="#student.date"/></td>
   </tr>
   </s:iterator>
  </table>

   <pg:pager items="${total}" url="student_list.action" export="currentPageNumber=pageNumber" maxPageItems="2" >  
               <pg:first><a href="${pageUrl}"><nobr>[首页]</nobr></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}"><nobr>[尾页]</nobr></a></pg:last>  
  </pg:pager> 

 

     Struts.xml配置

 

 

     <action name="student_list" class="StudentAction" method="list">
         <result name="list">/list.jsp</result> 
        </action>

 

   applicationContext.xml配置

 

<!--把sessionFactory映射到IStudentDAOImpl类的sessionFactory属性中-->

 

<bean id="studentDAO" class="org.cxg.dao.impl.IStudentDAOImpl">
 <property name="sessionFactory" ref="sessionFactory"></property>
</bean>

 

<!--把studentDAO映射到IStudentServiceImpl类的studentDAO属性中-->

<bean id="studentService" class="org.cxg.service.impl.IStudentServiceImpl">
 <property name="studentDAO" ref="studentDAO"></property>
</bean>

 

   <bean id="StudentAction" class="org.cxg.action.StudentAction" scope="prototype">
   <property name="service" ref="studentService"></property>
   </bean>

 

 

}

 

 

 

  • 0
    点赞
  • 3
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值