- 浏览: 757757 次
- 性别:
- 来自: 郑州
文章分类
- 全部博客 (396)
- JAVA (50)
- ORACLE (22)
- HIBERNATE (1)
- SPRING (26)
- STRUTS (4)
- OTHERS (0)
- MYSQL (11)
- Struts2 (16)
- JS (33)
- Tomcat (6)
- DWR (1)
- JQuery (26)
- JBoss (0)
- SQL SERVER (0)
- XML (10)
- 生活 (3)
- JSP (11)
- CSS (5)
- word (1)
- MyEclipse (7)
- JSTL (1)
- JEECMS (2)
- Freemarker (8)
- 页面特效 (1)
- EXT (2)
- Web前端 js库 (2)
- JSON http://www.json.org (3)
- 代码收集 (1)
- 电脑常识 (6)
- MD5加密 (0)
- Axis (0)
- Grails (1)
- 浏览器 (1)
- js调试工具 (1)
- WEB前端 (5)
- JDBC (2)
- PowerDesigner (1)
- OperaMasks (1)
- CMS (1)
- Java开源大全 (2)
- 分页 (28)
- Eclipse插件 (1)
- Proxool (1)
- Jad (1)
- Java反编译 (2)
- 报表 (6)
- JSON (14)
- FCKeditor (9)
- SVN (1)
- ACCESS (1)
- 正则表达式 (3)
- 数据库 (1)
- Flex (3)
- pinyin4j (2)
- IBATIS (3)
- probe (1)
- JSP & Servlet (1)
- 飞信 (0)
- AjaxSwing (0)
- AjaxSwing (0)
- Grid相关 (1)
- HTML (5)
- Guice (4)
- Warp framework (1)
- warp-persist (1)
- 服务器推送 (3)
- eclipse (1)
- JForum (5)
- 工具 (1)
- Python (1)
- Ruby (1)
- SVG (3)
- Joda-Time日期时间工具 (1)
- JDK (3)
- Pushlet (2)
- JSP & Servlet & FTP (1)
- FTP (6)
- 时间与效率 (4)
- 二维码 (1)
- 条码/二维码 (1)
最新评论
-
ctrlc:
你这是从web服务器上传到FTP服务器上的吧,能从用户电脑上上 ...
jsp 往 FTP 上传文件问题 -
annybz:
说的好抽象 为什么代码都有两遍。这个感觉没有第一篇 和第二篇 ...
Spring源代码解析(三):Spring JDBC -
annybz:
...
Spring源代码解析(一):IOC容器 -
jie_20:
你确定你有这样配置做过测试? 请不要转载一些自己没有测试的文档 ...
Spring2.0集成iReport报表技术概述 -
asd51731:
大哥,limit传-1时出错啊,怎么修改啊?
mysql limit 使用方法
这套解决方案,是按照MVC的模式来做的,基于STRUTS框架。分为三个部分,表现层用的是JSP,其中用了JSTL和pager
taglib
做分页;控制层就
是用的很传统的Action;底层就用的是Spring+Hibernate。下面分三个部分慢慢说:
说到分页:
1
首先新建一个PageModel类
- 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;
- }
- }
- 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;
- }
- }
Java代码
- 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;
- }
- }
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提供的分页查询。
- public interface UserDao {
- public void addUser(User user);
- /**
- *
- * @param offset 从 第几条记录开始查询
- * @param pagesize 每 页显示多少条记录
- * @return
- */
- public PageModel findAllUser( int offset, int pagesize);
- }
- public interface UserDao {
- public void addUser(User user);
- /**
- *
- * @param offset 从 第几条记录开始查询
- * @param pagesize 每 页显示多少条记录
- * @return
- */
- public PageModel findAllUser( int offset, int pagesize);
- }
Java代码
- public interface UserDao {
- public void addUser(User user);
- /**
- *
- * @param offset 从第几条记录开始查询
- * @param pagesize 每页显示多少条记录
- * @return
- */
- public PageModel findAllUser( int offset, int pagesize);
- }
public interface UserDao { public void addUser(User user); /** * * @param offset 从第几条记录开始查询 * @param pagesize 每页显示多少条记录 * @return */ public PageModel findAllUser(int offset, int pagesize); }
3 UserDao的实现类
- 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;
- }
- }
- 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;
- }
- }
Java代码
- 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;
- }
- }
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 代码如下:
- 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;
- }
- }
- 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;
- }
- }
Java代码
- 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;
- }
- }
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中的配置如下
- <!-- 配置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>
- <!-- 配置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>
Java代码
- <!-- 配 置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>
<!-- 配置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
的
标签库
首先将其引入:
- <%@ taglib prefix= "c" uri= "http://java.sun.com/jsp/jstl/core" %>
- <%@ 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 " %>
Java代码
- <%@ taglib prefix= "c" uri= "http://java.sun.com/jsp/jstl/core" %>
- <%@ 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 " %>
- < body >
- < h1 > User Manager </ 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
发表评论
-
displaytag 中文解决
2010-04-10 00:03 2298希望总在你想放弃的前一刻到来,这就算是对坚持的犒赏吧 ... -
扩展displaytag标签库
2010-04-09 11:28 1094下面是本人参考该URL扩展了下displaytag的标签库: ... -
extremeTable
2010-04-01 15:49 964extremeTable,又一个开源taglib ext ... -
extremeTable
2010-04-01 15:33 21230.概述 Home Pag ... -
【转】 在模板中分页,看Freemarker和 displaytag的结合
2010-04-01 14:46 2060Displaytag是一个很好的分页标签,它支持数据库端分页( ... -
displaytag1.1调用mssqlserver存储过程进行分页从数据库提取数据
2010-04-01 14:43 930原官方网http://displaytag.sourcef ... -
displaytag在struts中完成大数据量分页显示
2010-04-01 14:38 1324应用displaytag在struts中完成大数据量分页显 ... -
displaytag.properties
2010-04-01 14:01 2225displaytag.properties文件位于displa ... -
displaytag组件实现分页_DisplayTag应用指南_ DisplayTag七宗罪 _displaytag之中文(乱码)解决方案
2010-04-01 13:42 1847DisplayTag 应用指南 【摘 ... -
displaytag标签的使用手册
2010-04-01 13:39 16681.可以给它加上样式等 ... -
DisplayTag简单使用配置翻页
2010-04-01 13:36 1507首页http://displaytag.sourceforge ... -
displaytag标签 浅析
2010-04-01 13:25 1053DisplayTag是一个非常好用的表格显示标签,适合MVC模 ... -
displaytag.css文件中常用的样式说明及修改
2010-04-01 11:01 2700displaytag.css文件中常用的样式说明及修改 1. ... -
displaytag标签的常用属性和方法
2010-04-01 10:59 17601.可以给它加上样式等,也可以定义显示的列 ... -
在Struts2中使用DisplayTag翻页时的ognl.InappropriateExpressionException解决方案
2010-03-31 18:09 2098在struts2中使用displayTag组件进行翻页 ... -
Display Tag使用小记
2010-03-31 14:33 839... -
Struts中使用displaytag简单小教程
2010-03-31 14:26 1200... -
应用displaytag完成大数据量分页显示的例子
2010-03-31 14:23 1235应用displaytag在struts中完成大数据量分页显示, ... -
pager-taglib的安装和使用
2010-03-31 14:21 872... -
pager标记库(分页显示)详解
2010-03-31 14:19 1421一简介, Pager-taglib,支持多种风格的 ...
相关推荐
`pager-taglib.jar`是一个专为Java Web应用设计的分页框架,它提供了便捷的分页标签库,使得开发者能快速实现页面上的分页功能。 **描述:“pager-taglib.jar包下载.很方便的分页框架。这是jar包,希望能帮到大家”...
"pager-taglib.jar" 是一个Java Web开发中的库文件,主要用于实现分页功能。在Web应用中,当数据量较大时,通常会采用分页显示的方式,以提高用户体验和加载速度。Pager Taglib是一个标签库,它提供了一组自定义JSP...
在JSP页面上使用`pager:pagelist`和`pager:page`标签来渲染分页组件。基本结构可能如下: ```jsp <pager:pagelist page="${page}" var="p" total="${page.totalPages}"> ('${p}')">${p} </pager:pagelist> ``` 这里...
**标题解析:**"pager-taglib分页jar包"指的是一个专门为JavaServer Pages (JSP) 开发的分页库,它包含了一个名为`pager-taglib`的Java Archive (JAR) 文件。这个JAR包提供了自定义的JSP标签,帮助开发者在网页上...
总的来说,`pager-taglib_jar`提供的分页标签库极大地简化了JSP页面的分页实现,使得开发者能够专注于业务逻辑,而不用过多关注分页的细节。通过熟练掌握`pager-taglib`的使用,可以提高开发效率,同时保持代码的...
已解决中文乱码问题的 pager-taglib-2.0.jar包。
`pager-taglib.jar`是一个包含分页标签库实现的Java Archive (JAR) 文件。这个JAR文件包含了自定义标签的类和其他必要的支持代码。当在JSP页面中使用`pager-taglib`的标签时,这些类会被容器(如Tomcat)加载并执行...
**描述分析:**"pager-taglib-2.0 JSP分页组件 包括jar包和安装使用说明" 暗示我们收到了这个组件的完整包,其中包含了运行所需的jar文件以及关于如何在项目中安装和使用的详细指南。这通常意味着我们可以直接将此...
当你将这个JAR文件放入Tomcat服务器的`WEB-INF/lib`目录下时,服务器将能够识别并加载这个库,使得在JSP页面中可以使用Pager Taglib提供的标签来实现分页。 2. **pager-src.jar**:这个文件包含了Pager Taglib的源...
**Pager-taglib页面分页示例** 在Java Web开发中,数据量大的时候,分页显示是非常必要的。Pager-taglib就是一个专门用于实现页面分页功能的JSP标签库,它可以帮助开发者快速、方便地在页面上展示分页链接。本项目...
这个压缩包的核心是 "pager-taglib.jar" 文件,这是一个Java档案,封装了分页的相关逻辑和视图组件。 【描述】在Web开发中,分页是一项常见需求,尤其是在处理大量数据时,能够有效地提高用户体验。"pager-taglib....
`pager-lib.jar`是一个包含了分页处理逻辑和标签库的库文件,它通常包含以下组件: 1. 分页服务类:这部分代码负责计算总页数、当前页、每页条目数等信息,以及提供跳转到指定页的功能。 2. 分页标签:这些标签是...
`pager-taglib` 是一个用于网页分页功能的Java标签库,它简化了在JSP页面中实现分页展示数据的过程。这个框架旨在提高开发效率,提供易用的API和直观的标签语法,使得开发者无需编写大量的HTML和Java代码就能实现...
`pager-taglib`是Java Web开发中常用的分页标签库,它简化了在JSP页面上实现分页功能的过程。这个标签库通常与Spring MVC、Struts2等框架结合使用,提供了一种声明式的方式来展示数据分页。下面将详细解释`pager-...
标题"pager-taglib-2.0.rar"表明这是一个关于"pager-taglib"的软件组件,版本为2.0,并且是以RAR压缩格式存储的。"pager-taglib"通常指的是一个用于网页分页显示的标签库,它帮助开发者在Java Web应用程序中轻松实现...
"Pager-Taglib 2.0" 是一个专为Java Web开发者设计的高效且易用的分页工具。它以JSP标签库的形式提供服务,极大地简化了在Web应用程序中实现分页功能的过程。这个库的核心是其标签,它们允许开发者在JSP页面上直接...