`
huibin
  • 浏览: 750257 次
  • 性别: Icon_minigender_1
  • 来自: 郑州
社区版块
存档分类
最新评论

Pager-taglib.jar(分页组件)

阅读更多

这套解决方案,是按照MVC的模式来做的,基于STRUTS框架。分为三个部分,表现层用的是JSP,其中用了JSTL和pager taglib 做分页;控制层就 是用的很传统的Action;底层就用的是Spring+Hibernate。下面分三个部分慢慢说:

说到分页:
1  首先新建一个PageModel类

Java代码 复制代码
  1. package  com.dengmin.oa.utils;   
  2.   
  3. import  java.util.List;   
  4.   
  5. public   class  PageModel {   
  6.   
  7.      /**  
  8.      * 总 记录数  
  9.      */   
  10.      private   int  total;   
  11.      /**  
  12.      * 当 前页的记录集  
  13.      */   
  14.      private  List datas;   
  15.   
  16.      public  List getDatas() {   
  17.          return  datas;   
  18.     }   
  19.   
  20.      public   void  setDatas(List datas) {   
  21.          this .datas = datas;   
  22.     }   
  23.   
  24.      public   int  getTotal() {   
  25.          return  total;   
  26.     }   
  27.   
  28.      public   void  setTotal( int  total) {   
  29.          this .total = total;   
  30.     }   
  31. }  
Java代码 复制代码
  1. package  com.dengmin.oa.utils;   
  2.   
  3. import  java.util.List;   
  4.   
  5. public   class  PageModel {   
  6.   
  7.      /**  
  8.      * 总 记录数  
  9.      */   
  10.      private   int  total;   
  11.      /**  
  12.      * 当 前页的记录集  
  13.      */   
  14.      private  List datas;   
  15.   
  16.      public  List getDatas() {   
  17.          return  datas;   
  18.     }   
  19.   
  20.      public   void  setDatas(List datas) {   
  21.          this .datas = datas;   
  22.     }   
  23.   
  24.      public   int  getTotal() {   
  25.          return  total;   
  26.     }   
  27.   
  28.      public   void  setTotal( int  total) {   
  29.          this .total = total;   
  30.     }   
  31. }  
Java代码
  1. package  com.dengmin.oa.utils;  
  2.   
  3. import  java.util.List;  
  4.   
  5. public   class  PageModel {  
  6.   
  7.     /**  
  8.      * 总 记录数  
  9.      */   
  10.     private   int  total;  
  11.     /**  
  12.      * 当 前页的记录集  
  13.      */   
  14.     private  List datas;  
  15.   
  16.     public  List getDatas() {  
  17.         return  datas;  
  18.     }  
  19.   
  20.     public   void  setDatas(List datas) {  
  21.         this .datas = datas;  
  22.     }  
  23.   
  24.     public   int  getTotal() {  
  25.         return  total;  
  26.     }  
  27.   
  28.     public   void  setTotal( int  total) {  
  29.         this .total = total;  
  30.     }  
  31. }  
package com.dengmin.oa.utils;

import java.util.List;

public class PageModel {

	/**
	 * 总记录数
	 */
	private int total;
	/**
	 * 当前页的记录集
	 */
	private List datas;

	public List getDatas() {
		return datas;
	}

	public void setDatas(List datas) {
		this.datas = datas;
	}

	public int getTotal() {
		return total;
	}

	public void setTotal(int total) {
		this.total = total;
	}
}


2  底层是基于Spring+Hibernate来做的。在DAO这一层,为其增加两个方法,底层的分页查询用的是Hibernate提供的分页查询。

Java代码 复制代码
  1. public   interface  UserDao {   
  2.   
  3.      public   void  addUser(User user);   
  4.   
  5.      /**  
  6.      *   
  7.      * @param offset  从 第几条记录开始查询  
  8.      * @param pagesize  每 页显示多少条记录  
  9.      * @return  
  10.      */   
  11.      public  PageModel findAllUser( int  offset,  int  pagesize);   
  12. }  
Java代码 复制代码
  1. public   interface  UserDao {   
  2.   
  3.      public   void  addUser(User user);   
  4.   
  5.      /**  
  6.      *   
  7.      * @param offset  从 第几条记录开始查询  
  8.      * @param pagesize  每 页显示多少条记录  
  9.      * @return  
  10.      */   
  11.      public  PageModel findAllUser( int  offset,  int  pagesize);   
  12. }  
Java代码
  1. public   interface  UserDao {  
  2.   
  3.     public   void  addUser(User user);  
  4.   
  5.     /**  
  6.      *   
  7.      * @param offset  从第几条记录开始查询  
  8.      * @param pagesize  每页显示多少条记录  
  9.      * @return  
  10.      */   
  11.     public  PageModel findAllUser( int  offset,  int  pagesize);  
  12. }  
public interface UserDao {

	public void addUser(User user);

	/**
	 * 
	 * @param offset  从第几条记录开始查询
	 * @param pagesize  每页显示多少条记录
	 * @return
	 */
	public PageModel findAllUser(int offset, int pagesize);
}


3  UserDao的实现类

Java代码 复制代码
  1. public   class  UserDaoImpl  extends  HibernateDaoSupport  implements  UserDao {   
  2.   
  3.      public   void  addUser(User user) {   
  4.          this .getHibernateTemplate().save(user);   
  5.     }   
  6.        
  7.      public  PageModel findAllUser( int  offset,  int  pagesize) {   
  8.            
  9.          //得到总记录数   
  10.         String queryCountHql =  "select count(*) from User" ;   
  11.            
  12.         Query query = getSession().createQuery(queryCountHql);   
  13.          int  total = ((Long)query.uniqueResult()).intValue();   
  14.            
  15.         List datas = getSession().createQuery( "from User" )   
  16.                     .setFirstResult(offset)   
  17.                     .setMaxResults(pagesize)   
  18.                     .list();   
  19.          //得到结果集   
  20.         PageModel pm =  new  PageModel();   
  21.         pm.setTotal(total);   
  22.         pm.setDatas(datas);   
  23.            
  24.          return  pm;   
  25.     }   
  26.   
  27. }  
Java代码 复制代码
  1. public   class  UserDaoImpl  extends  HibernateDaoSupport  implements  UserDao {   
  2.   
  3.      public   void  addUser(User user) {   
  4.          this .getHibernateTemplate().save(user);   
  5.     }   
  6.        
  7.      public  PageModel findAllUser( int  offset,  int  pagesize) {   
  8.            
  9.          //得到总记录数   
  10.         String queryCountHql =  "select count(*) from User" ;   
  11.            
  12.         Query query = getSession().createQuery(queryCountHql);   
  13.          int  total = ((Long)query.uniqueResult()).intValue();   
  14.            
  15.         List datas = getSession().createQuery( "from User" )   
  16.                     .setFirstResult(offset)   
  17.                     .setMaxResults(pagesize)   
  18.                     .list();   
  19.          //得到结果集   
  20.         PageModel pm =  new  PageModel();   
  21.         pm.setTotal(total);   
  22.         pm.setDatas(datas);   
  23.            
  24.          return  pm;   
  25.     }   
  26.   
  27. }  
Java代码
  1. public   class  UserDaoImpl  extends  HibernateDaoSupport  implements  UserDao {  
  2.   
  3.     public   void  addUser(User user) {  
  4.         this .getHibernateTemplate().save(user);  
  5.     }  
  6.       
  7.     public  PageModel findAllUser( int  offset,  int  pagesize) {  
  8.           
  9.         //得到总记录数   
  10.         String queryCountHql = "select count(*) from User" ;  
  11.           
  12.         Query query = getSession().createQuery(queryCountHql);  
  13.         int  total = ((Long)query.uniqueResult()).intValue();  
  14.           
  15.         List datas = getSession().createQuery("from User" )  
  16.                     .setFirstResult(offset)  
  17.                     .setMaxResults(pagesize)  
  18.                     .list();  
  19.         //得到结果集   
  20.         PageModel pm = new  PageModel();  
  21.         pm.setTotal(total);  
  22.         pm.setDatas(datas);  
  23.           
  24.         return  pm;  
  25.     }  
  26.   
  27. }  
public class UserDaoImpl extends HibernateDaoSupport implements UserDao {

	public void addUser(User user) {
		this.getHibernateTemplate().save(user);
	}
	
	public PageModel findAllUser(int offset, int pagesize) {
		
		//得到总记录数
		String queryCountHql = "select count(*) from User";
		
		Query query = getSession().createQuery(queryCountHql);
		int total = ((Long)query.uniqueResult()).intValue();
		
		List datas = getSession().createQuery("from User")
					.setFirstResult(offset)
					.setMaxResults(pagesize)
					.list();
		//得到结果集
		PageModel pm = new PageModel();
		pm.setTotal(total);
		pm.setDatas(datas);
		
		return pm;
	}

}



ok!底层的实现工作就做好了

在控制层中UserAction从DispatchAction继承重写它的 unspecified方法
通过spring注入UserDao 代码如下:

Java代码 复制代码
  1. public   class  UserAction  extends  DispatchAction {   
  2.   
  3.      private  UserDao userDao;   
  4.      @Override   
  5.      protected  ActionForward unspecified(ActionMapping mapping, ActionForm form,   
  6.             HttpServletRequest request, HttpServletResponse response)  throws  Exception {   
  7.            
  8.          int  offset =  0 ;    
  9.            
  10.          try  {   
  11.             offset = Integer.parseInt(request.getParameter( "pager .offset" ));   
  12.         }  catch  (Exception e) {   
  13.         }   
  14.          //这里我按照每页显示10条   
  15.         PageModel pm = userDao.findAllUser(offset,  10 );   
  16.         request.setAttribute( "pm" , pm);   
  17.            
  18.          return  mapping.findForward( "success" );   
  19.     }   
  20.        
  21.      public   void  setUserDao(UserDao userDao) {   
  22.          this .userDao = userDao;   
  23.     }   
  24.        
  25. }  
Java代码 复制代码
  1. public   class  UserAction  extends  DispatchAction {   
  2.   
  3.      private  UserDao userDao;   
  4.      @Override   
  5.      protected  ActionForward unspecified(ActionMapping mapping, ActionForm form,   
  6.             HttpServletRequest request, HttpServletResponse response)  throws  Exception {   
  7.            
  8.          int  offset =  0 ;    
  9.            
  10.          try  {   
  11.             offset = Integer.parseInt(request.getParameter( "pager .offset" ));   
  12.         }  catch  (Exception e) {   
  13.         }   
  14.          //这里我按照每页显示10条   
  15.         PageModel pm = userDao.findAllUser(offset,  10 );   
  16.         request.setAttribute( "pm" , pm);   
  17.            
  18.          return  mapping.findForward( "success" );   
  19.     }   
  20.        
  21.      public   void  setUserDao(UserDao userDao) {   
  22.          this .userDao = userDao;   
  23.     }   
  24.        
  25. }  
Java代码
  1. public   class  UserAction  extends  DispatchAction {  
  2.   
  3.     private  UserDao userDao;  
  4.     @Override   
  5.     protected  ActionForward unspecified(ActionMapping mapping, ActionForm form,  
  6.             HttpServletRequest request, HttpServletResponse response) throws  Exception {  
  7.           
  8.         int  offset =  0 ;   
  9.           
  10.         try  {  
  11.             offset = Integer.parseInt(request.getParameter("pager .offset" ));  
  12.         } catch  (Exception e) {  
  13.         }  
  14.         //这里我按照每页显示10条   
  15.         PageModel pm = userDao.findAllUser(offset, 10 );  
  16.         request.setAttribute("pm" , pm);  
  17.           
  18.         return  mapping.findForward( "success" );  
  19.     }  
  20.       
  21.     public   void  setUserDao(UserDao userDao) {  
  22.         this .userDao = userDao;  
  23.     }  
  24.       
  25. }  
public class UserAction extends DispatchAction {

	private UserDao userDao;
	@Override
	protected ActionForward unspecified(ActionMapping mapping, ActionForm form,
			HttpServletRequest request, HttpServletResponse response) throws Exception {
		
		int offset = 0; 
		
		try {
			offset = Integer.parseInt(request.getParameter("pager
.offset"));
		} catch (Exception e) {
		}
		//这里我按照每页显示10条
		PageModel pm = userDao.findAllUser(offset, 10);
		request.setAttribute("pm", pm);
		
		return mapping.findForward("success");
	}
	
	public void setUserDao(UserDao userDao) {
		this.userDao = userDao;
	}
	
}



spring中的配置如下

Java代码 复制代码
  1. <!-- 配置sessionFactory -->   
  2.     <bean id= "sessionFactory"   
  3.          class = "org.springframework.orm.hibernate3.LocalSessionFactoryBean" >   
  4.         <property name= "configLocation" >   
  5.             <value>classpath:hibernate.cfg.xml</value>   
  6.         </property>   
  7.     </bean>   
  8.     <!-- 配置事务管理器 -->   
  9.     <bean id= "transactionManager"   
  10.          class = "org.springframework.orm.hibernate3.HibernateTransactionManager" >   
  11.         <property name= "sessionFactory" >   
  12.             <ref bean= "sessionFactory"  />   
  13.         </property>   
  14.     </bean>   
  15.   
  16.     <!-- 配置事务的传播特性 -->   
  17.     <tx:advice id= "txAdvice"  transaction-manager= "transactionManager" >   
  18.         <tx:attributes>   
  19.             <tx:method name= "*"  propagation= "REQUIRED"  />   
  20.         </tx:attributes>   
  21.     </tx:advice>   
  22.   
  23.   
  24. <bean id= "userDao"   class = "com.dengmin.pager .dao.UserDaoImpl" >   
  25.         <property name= "sessionFactory"  ref= "sessionFactory"  />   
  26.     </bean>   
  27.   
  28.     <bean name= "/userManager"   
  29.          class = "com.dengmin.pager .actions.UserAction"  scope= "prototype" >   
  30.         <property name= "userDao"  ref= "userDao"  />   
  31.     </bean>  
Java代码 复制代码
  1. <!-- 配置sessionFactory -->   
  2.     <bean id= "sessionFactory"   
  3.          class = "org.springframework.orm.hibernate3.LocalSessionFactoryBean" >   
  4.         <property name= "configLocation" >   
  5.             <value>classpath:hibernate.cfg.xml</value>   
  6.         </property>   
  7.     </bean>   
  8.     <!-- 配置事务管理器 -->   
  9.     <bean id= "transactionManager"   
  10.          class = "org.springframework.orm.hibernate3.HibernateTransactionManager" >   
  11.         <property name= "sessionFactory" >   
  12.             <ref bean= "sessionFactory"  />   
  13.         </property>   
  14.     </bean>   
  15.   
  16.     <!-- 配置事务的传播特性 -->   
  17.     <tx:advice id= "txAdvice"  transaction-manager= "transactionManager" >   
  18.         <tx:attributes>   
  19.             <tx:method name= "*"  propagation= "REQUIRED"  />   
  20.         </tx:attributes>   
  21.     </tx:advice>   
  22.   
  23.   
  24. <bean id= "userDao"   class = "com.dengmin.pager .dao.UserDaoImpl" >   
  25.         <property name= "sessionFactory"  ref= "sessionFactory"  />   
  26.     </bean>   
  27.   
  28.     <bean name= "/userManager"   
  29.          class = "com.dengmin.pager .actions.UserAction"  scope= "prototype" >   
  30.         <property name= "userDao"  ref= "userDao"  />   
  31.     </bean>  
Java代码
  1. <!-- 配 置sessionFactory -->  
  2.     <bean id="sessionFactory"   
  3.         class = "org.springframework.orm.hibernate3.LocalSessionFactoryBean" >  
  4.         <property name="configLocation" >  
  5.             <value>classpath:hibernate.cfg.xml</value>  
  6.         </property>  
  7.     </bean>  
  8.     <!-- 配 置事务管理器 -->  
  9.     <bean id="transactionManager"   
  10.         class = "org.springframework.orm.hibernate3.HibernateTransactionManager" >  
  11.         <property name="sessionFactory" >  
  12.             <ref bean="sessionFactory"  />  
  13.         </property>  
  14.     </bean>  
  15.   
  16.     <!-- 配 置事务的传播特性 -->  
  17.     <tx:advice id="txAdvice"  transaction-manager= "transactionManager" >  
  18.         <tx:attributes>  
  19.             <tx:method name="*"  propagation= "REQUIRED"  />  
  20.         </tx:attributes>  
  21.     </tx:advice>  
  22.   
  23.   
  24. <bean id="userDao"   class = "com.dengmin.pager .dao.UserDaoImpl" >  
  25.         <property name="sessionFactory"  ref= "sessionFactory"  />  
  26.     </bean>  
  27.   
  28.     <bean name="/userManager"   
  29.         class = "com.dengmin.pager .actions.UserAction"  scope= "prototype" >  
  30.         <property name="userDao"  ref= "userDao"  />  
  31.     </bean>  
<!-- 配置sessionFactory -->
	<bean id="sessionFactory"
		class="org.springframework.orm.hibernate3.LocalSessionFactoryBean">
		<property name="configLocation">
			<value>classpath:hibernate.cfg.xml</value>
		</property>
	</bean>
	<!-- 配置事务管理器 -->
	<bean id="transactionManager"
		class="org.springframework.orm.hibernate3.HibernateTransactionManager">
		<property name="sessionFactory">
			<ref bean="sessionFactory" />
		</property>
	</bean>

	<!-- 配置事务的传播特性 -->
	<tx:advice id="txAdvice" transaction-manager="transactionManager">
		<tx:attributes>
			<tx:method name="*" propagation="REQUIRED" />
		</tx:attributes>
	</tx:advice>


<bean id="userDao" class="com.dengmin.pager
.dao.UserDaoImpl">
		<property name="sessionFactory" ref="sessionFactory" />
	</bean>

	<bean name="/userManager"
		class="com.dengmin.pager
.actions.UserAction" scope="prototype">
		<property name="userDao" ref="userDao" />
	</bean>



最后是jsp页面做数据显示
这里采用了jstl和pager -taglib 的 标签库
首先将其引入:

Java代码 复制代码
  1. <%@ taglib  prefix= "c"   uri= "http://java.sun.com/jsp/jstl/core"  %>   
  2. <%@ taglib  prefix= "pg"  uri= "http://jsptags.com/tags/navigation/pager "  %>  
Java代码 复制代码
  1. <%@ taglib  prefix= "c"   uri= "http://java.sun.com/jsp/jstl/core"  %>   
  2. <%@ taglib  prefix= "pg"  uri= "http://jsptags.com/tags/navigation/pager "  %>  
Java代码
  1. <%@ taglib  prefix= "c"   uri= "http://java.sun.com/jsp/jstl/core"  %>  
  2. <%@ taglib  prefix="pg"  uri= "http://jsptags.com/tags/navigation/pager "  %>  
<%@ taglib
 prefix="c"  uri="http://java.sun.com/jsp/jstl/core" %>
<%@ taglib
 prefix="pg" uri="http://jsptags.com/tags/navigation/pager
" %>

 

Html代码 复制代码
  1.    < body >   
  2.      < h1 > User Manager </ h1 >   
  3.      < hr />   
  4.        
  5.      < table   width = "778"   border = "0"   cellPadding = "0"   cellSpacing = "1"   bgcolor = "#6386d6" >   
  6.      < tr   bgcolor = "#EFF3F7" >   
  7.          < TD   align = "center" > ID </ TD >   
  8.          < TD   align = "center" > 名 称 </ TD >   
  9.          < TD
    分享到:
    评论

相关推荐

    pager-taglib.jar包下载

    `pager-taglib.jar`是一个专为Java Web应用设计的分页框架,它提供了便捷的分页标签库,使得开发者能快速实现页面上的分页功能。 **描述:“pager-taglib.jar包下载.很方便的分页框架。这是jar包,希望能帮到大家”...

    pager-taglib.jar

    "pager-taglib.jar" 是一个Java Web开发中的库文件,主要用于实现分页功能。在Web应用中,当数据量较大时,通常会采用分页显示的方式,以提高用户体验和加载速度。Pager Taglib是一个标签库,它提供了一组自定义JSP...

    使用pager-taglib分页完整例子

    在JSP页面上使用`pager:pagelist`和`pager:page`标签来渲染分页组件。基本结构可能如下: ```jsp &lt;pager:pagelist page="${page}" var="p" total="${page.totalPages}"&gt; ('${p}')"&gt;${p} &lt;/pager:pagelist&gt; ``` 这里...

    pager-taglib分页jar包

    **标题解析:**"pager-taglib分页jar包"指的是一个专门为JavaServer Pages (JSP) 开发的分页库,它包含了一个名为`pager-taglib`的Java Archive (JAR) 文件。这个JAR包提供了自定义的JSP标签,帮助开发者在网页上...

    pager-taglib_jar

    总的来说,`pager-taglib_jar`提供的分页标签库极大地简化了JSP页面的分页实现,使得开发者能够专注于业务逻辑,而不用过多关注分页的细节。通过熟练掌握`pager-taglib`的使用,可以提高开发效率,同时保持代码的...

    pager-taglib jar 和 tld 以及使用说明

    `pager-taglib.jar`是一个包含分页标签库实现的Java Archive (JAR) 文件。这个JAR文件包含了自定义标签的类和其他必要的支持代码。当在JSP页面中使用`pager-taglib`的标签时,这些类会被容器(如Tomcat)加载并执行...

    pager-taglib-2.0 JSP分页组件

    **描述分析:**"pager-taglib-2.0 JSP分页组件 包括jar包和安装使用说明" 暗示我们收到了这个组件的完整包,其中包含了运行所需的jar文件以及关于如何在项目中安装和使用的详细指南。这通常意味着我们可以直接将此...

    pager-taglib-2.0完整部署运行

    当你将这个JAR文件放入Tomcat服务器的`WEB-INF/lib`目录下时,服务器将能够识别并加载这个库,使得在JSP页面中可以使用Pager Taglib提供的标签来实现分页。 2. **pager-src.jar**:这个文件包含了Pager Taglib的源...

    Pager-taglib页面分页示例

    **Pager-taglib页面分页示例** 在Java Web开发中,数据量大的时候,分页显示是非常必要的。Pager-taglib就是一个专门用于实现页面分页功能的JSP标签库,它可以帮助开发者快速、方便地在页面上展示分页链接。本项目...

    pager-taglib.zip

    这个压缩包的核心是 "pager-taglib.jar" 文件,这是一个Java档案,封装了分页的相关逻辑和视图组件。 【描述】在Web开发中,分页是一项常见需求,尤其是在处理大量数据时,能够有效地提高用户体验。"pager-taglib....

    分页插件(pager-lib.jar)及使用方法和实例

    `pager-lib.jar`是一个包含了分页处理逻辑和标签库的库文件,它通常包含以下组件: 1. 分页服务类:这部分代码负责计算总页数、当前页、每页条目数等信息,以及提供跳转到指定页的功能。 2. 分页标签:这些标签是...

    pager-taglib 分页框架+附带例子

    `pager-taglib` 是一个用于网页分页功能的Java标签库,它简化了在JSP页面中实现分页展示数据的过程。这个框架旨在提高开发效率,提供易用的API和直观的标签语法,使得开发者无需编写大量的HTML和Java代码就能实现...

    pager-taglib-2.0.jar 已解决乱码

    已解决中文乱码问题的 pager-taglib-2.0.jar包。

    pager-taglib 分页标签使用

    `pager-taglib`是Java Web开发中常用的分页标签库,它简化了在JSP页面上实现分页功能的过程。这个标签库通常与Spring MVC、Struts2等框架结合使用,提供了一种声明式的方式来展示数据分页。下面将详细解释`pager-...

    pager-taglib-2.0.rar

    标题"pager-taglib-2.0.rar"表明这是一个关于"pager-taglib"的软件组件,版本为2.0,并且是以RAR压缩格式存储的。"pager-taglib"通常指的是一个用于网页分页显示的标签库,它帮助开发者在Java Web应用程序中轻松实现...

    pager-taglib-2.0

    "Pager-Taglib 2.0" 是一个专为Java Web开发者设计的高效且易用的分页工具。它以JSP标签库的形式提供服务,极大地简化了在Web应用程序中实现分页功能的过程。这个库的核心是其标签,它们允许开发者在JSP页面上直接...

Global site tag (gtag.js) - Google Analytics