`

displaytag分页

    博客分类:
  • java
阅读更多

 
      应用displaytag在struts中完成大数据量分页显示,Oracle数据库
      
      JSP文件:
       
     

 <%...@ taglib uri="/WEB-INF/displaytag.tld" divfix="disp" %>

      <disp:table name="resultList" export="true" pagesize="100" 
      requestURI="logQueryAction.do" sort="external" id="element" 
      partialList="true" size="resultSize">
                <disp:column property="operdate" title="操作时间" ></disp:column>
                <disp:column property="pername" title="操作人员" ></disp:column>
                <disp:column property="opertype" title="操作类型" ></disp:column>
      </disp:table> 

name="resultList" 将记录集存在session或者request中的键值
      export="true" 是否显示导出选项
      pagesize="100" 每页显示100条数据
      requestURI="logQueryAction.do"  struts中action的名称,如果记录少,可以直接分页
      sort="external"  外部排序
      id="element"   表格id值,用于程序得相关的参数
      partialList="true"  分段从数据库中读数据
      size="resultSize"  记录的总条数,用于计算总页数、

 

  struts action:

String pageIndexName = new 
      org.displaytag.util.ParamEncoder("element").encodeParameterName(org.displaytag.tags.TableTagParameters.PARAMETER_PAGE); 
        // 页数的参数名
              int pageSize = 100;   //每页显示的条数
              int pageIndex = 
      GenericValidator.isBlankOrNull(request.getParameter(pageIndexName))?0:(Integer.parseInt(request.getParameter(pageIndexName)) 
      - 1);  //当前页数
      String sqlCount = "select count(*)  from user_log a ";  //用于统计总记录数的sql语句
              String sql = " select * from (select rownum as rid, t1.* from 
      (select b.pername as pername,to_char(a.operdate,'yyyy-mm-dd hh24:mi:ss') 
      as operdate," +
                      " decode(a.opertype,'D','删除','M','修改','其他') as opertype, 
      a.hphm as hphm from user_log a, " +
                      " (select asuser.userid as 
      userid,nvl(asempmsg.pername,asuser.loginname) as pername from 
      asuser,ASEMPMSG where asuser.perid=ASEMPMSG.perid(+)) b" +
                      " where a.userid=b.userid ";   //查询语句
                  //构造查询条件
              StringBuffer sb = new StringBuffer();
              if(logQueryForm.getCzrqStart()!=null && 
      !"".equals(logQueryForm.getCzrqStart()))...{
                  sb.append(" and a.operdate > 
      to_date('"+logQueryForm.getCzrqStart()+"','yyyy-mm-dd')");
              }
              if(logQueryForm.getCzrqEnd()!=null && 
      !"".equals(logQueryForm.getCzrqEnd()))...{
                  sb.append(" and a.operdate <= 
      to_date('"+logQueryForm.getCzrqEnd()+"','yyyy-mm-dd')");
              }
              if(logQueryForm.getCzlx()!=null && 
      !"".equals(logQueryForm.getCzlx()))...{
                  sb.append(" and a.opertype = '"+logQueryForm.getCzlx()+"'");
              }
              if(logQueryForm.getCzry()!=null && 
      !"".equals(logQueryForm.getCzry()))...{
                  sb.append(" and a.userid = '"+logQueryForm.getCzry()+"'");
              }
           
              sqlCount += sb.toString();
              sql += sb.toString()+" order by a.operdate desc) t1 where 
rownum<="
                              + (pageIndex + 1) * pageSize + " ) t2 where 
      t2.rid>"+ pageIndex * pageSize;  //分页读取语句
              
              //System.out.println(sb.toString());
              DBBean db = new DBBean();
              ResultSet rs = null;
              PreparedStatement divp = null;
              try...{
                  List resultList = db.getResultList(sql);   
      //将ResultSet保存在List里返回
                  request.setAttribute("resultList",resultList);  //把结果存入request
                  divp = db.getConnection().divpareStatement(sqlCount);    
                  rs = divp.executeQuery();
                  if(rs.next())...{
                      request.setAttribute("resultSize",new 
      Integer(rs.getInt(1)));     //将总记录数保存成Intger实例保存在request中
                  }
              }
              catch(Exception ex)...{
                  ex.printStackTrace();
              }
              finally...{
                  if(db!=null)...{
                      db.closeConnection();    //关闭连接
                  } 
              }

 

  其中的页面导航是英文的,只要修改org.displaytag.properties.TableTag.properties配置文件就可以把英文改成中文。
            正在装载数据……
      同时还可以指定导出文件的类型以及文件名。
      export.excel=true
      export.excel.label=<span class="export excel">Excel </span>
      export.excel.include_header=true
      export.excel.filename=export.xls
      如果不指定文件名,在点击导出excel的时候,就会在ie窗口中打开excel文件。很烦人!
      指定文件名后就可以选择保存和打开了。

分享到:
评论

相关推荐

    DisplayTag分页及属性

    以下是对DisplayTag分页及属性的详细说明: 1. **DisplayTag 说明** DisplayTag 是一个基于 JSP 标签库,它通过提供一系列的自定义标签来简化在 JSP 页面中创建复杂的表格和分页操作。这些标签可以用来展示数据库...

    displaytag 分页标签 中文化

    NULL 博文链接:https://wooden-baby.iteye.com/blog/494060

    displaytag 分页的简单例子(附源代码)

    display tag 分页例子中用到的有关display tag lib的jar包,把这些jar包拷贝到WEB-INF/lib中例子就可以运行了。 博文链接:https://zhou568xiao.iteye.com/blog/192366

    displayTag分页插件及配置文档

    改装后的displayTag分页插件,解决中文问题,内置帮助文档和示例文件及jar包,比较好用,如果不满足你的需求请不要砸砖 补充: csdn附件不能修改,jsp+servlet分页时有bug,请注意查询所有的serlvet不支持带参数,即...

    DisplayTag分页资料整理.chm

    个人学习收集网上资料辛苦整理而成. DisplayTag分页资料整理.chm DisplayTag 分页 chm java taglib

    displaytag 分页模版资料 JSP

    在提供的资料中,"displaytag分页模版使用说明书.xls"可能包含了一份详细的使用指南,涵盖如何配置DisplayTag,如何在JSP页面中嵌入标签,以及如何实现各种高级功能。这份文档将指导开发者了解DisplayTag的配置文件...

    DisplayTag分页

    DisplayTag分页技术的核心在于其能够自动处理大量数据,将这些数据按页显示,从而提高网页性能和用户体验。以下是关于DisplayTag分页的一些关键知识点: 1. **配置与引入**:首先,你需要在项目中引入DisplayTag库...

    一个完美的displaytag分页控件的例子

    这个"一个完美的displaytag分页控件的例子"显然展示了如何有效地利用DisplayTag库来实现一个美观且功能丰富的分页表格。 在JSP(JavaServer Pages)开发中,DisplayTag是一个常用的标签库,它提供了许多预定义的...

    displaytag分页模版使用说明书

    displaytag分页模版使用说明书

    Displaytag实现分页

    Displaytag 是一个开源的 Java 框架,用于在 Web 应用中生成表格和实现分页、排序等功能。它简化了在 JSP 页面中处理数据表的复杂性,提供了丰富的定制选项。以下是对 Displaytag 实现分页的详细解释: 1. **下载与...

    07java培训displaytag分页实例六.doc

    07java培训displaytag分页实例六

    Struts2 DisplayTag 分页

    DisplayTag是一个功能强大的开源库,主要用于生成表格和提供分页功能,而Struts2则是一个MVC框架,用于处理用户请求和业务逻辑。将两者整合可以实现高效、美观的分页效果。 首先,我们需要了解Struts2的基本架构。...

    displaytag分页模版

    displaytag分页模版

    displaytag分页jar包和使用说明

    DisplayTag是Java Web开发中的一款强大且功能丰富的表格和分页控件库,它极大地简化了在JSP页面中处理复杂表格和实现分页的工作。这个压缩包文件包含的就是DisplayTag的相关jar包以及可能的使用说明文档,对于开发...

    displayTag 分页

    DisplayTag 是一个非常受欢迎的开源Java Web开发框架中的分页组件。它以其简洁的使用方式和强大的功能,被广泛应用于各种Web应用项目中,尤其是在处理大量数据展示时,能够有效地提高用户体验,减轻服务器压力。 ...

    displaytag分页和鼠标经过变色功能

    Displaytag 是一个强大的开源Java库,用于创建复杂的HTML表格,包括分页、排序、过滤等功能。在Web开发中,为了提升用户体验,常常需要在表格中实现鼠标悬停时行变色的效果。由于Displaytag 默认并不支持这个功能,...

    displaytag,pager-taglib 分页包

    Displaytag和Pager-taglib是两个在Java Web开发中常用的分页库,主要用于处理大量数据的显示,提升用户体验,减轻服务器压力。这两个库都是基于JSP标签库(Tag Library)实现的,可以方便地集成到Spring、Struts等...

Global site tag (gtag.js) - Google Analytics