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









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:








//构造查询条件
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配置文件就可以把英文改成中文。同时还可以指定导出文件的类型以及文件名。




如果不指定文件名,在点击导出excel的时候,就会在ie窗口中打开excel文件。很烦人!
指定文件名后就可以选择保存和打开了。
<script type="text/javascript"> </script><script type="text/javascript" src="http://pagead2.googlesyndication.com/pagead/show_ads.js"> </script>
版权声明:本文为lveyo原创文章,遵循CC 4.0 BY-SA版权协议,转载请附上原文出处链接和本声明。