应用displaytag在struts中完成大数据量分页显示
来源:互联网 发布:2016网络红歌榜 编辑:程序博客网 时间:2024/06/04 18:42
应用displaytag在struts中完成大数据量分页显示,Oracle数据库
JSP文件:
<%...@ taglib uri="/WEB-INF/displaytag.tld" prefix="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>
<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 "; //查询语句
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 prep = null;
try...{
List resultList = db.getResultList(sql); //将ResultSet保存在List里返回
request.setAttribute("resultList",resultList); //把结果存入request
prep = db.getConnection().prepareStatement(sqlCount);
rs = prep.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(); //关闭连接
}
}
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 prep = null;
try...{
List resultList = db.getResultList(sql); //将ResultSet保存在List里返回
request.setAttribute("resultList",resultList); //把结果存入request
prep = db.getConnection().prepareStatement(sqlCount);
rs = prep.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
export.excel.label=<span class="export excel">Excel </span>
export.excel.include_header=true
export.excel.filename=export.xls
如果不指定文件名,在点击导出excel的时候,就会在ie窗口中打开excel文件。很烦人!
指定文件名后就可以选择保存和打开了。
- 应用displaytag在struts中完成大数据量分页显示
- Displaytag使用与应用displaytag完成大数据量分页显示的例子
- 在Struts中使用displaytag标签的排序/分页数据
- 大数据量分页显示
- displaytag 1.1 使用Partial Lists大数据量分页的例子
- Hbase在大数据量应用
- Struts中使用displaytag
- 用displaytag展现大数据量数据
- JAVA中displaytag标记库实现分页显示下载网站
- SQL2005中大数据量检索的分页
- SQL2005中大数据量检索的分页
- asp中大数据量分页代码示例
- SQL2005中大数据量检索的分页
- 如何在Struts 数据库应用程序中实现分页显示(1)
- 如何在Struts 数据库应用程序中实现分页显示(2)
- 如何在Struts 数据库应用程序中实现分页显示
- 如何在Struts 数据库应用程序中实现分页显示(1)
- 如何在Struts 数据库应用程序中实现分页显示(2)
- 燃烧的远征java(二)-开发环境:eclipse 的使用技巧收集
- asp.net生成html文件
- 一封写给中国学生的信-从诚信谈起
- 《Thinking in C++》练习题答案——3-4
- struts2的CRUD中的权限控制初探
- 应用displaytag在struts中完成大数据量分页显示
- 成功就是成为最好的你自己
- 自信是自觉而非自傲
- 快乐比成功更重要
- 彻底解决 CrystalReports 登录失败问题
- 返回数据库数据DataSet函数
- redboot startup process
- 我国资本市场风雨17年!
- JAVA正则表达式