首页 诗词 字典 板报 句子 名言 友答 励志 学校 网站地图
当前位置: 首页 > 教程频道 > 网站开发 > Web前端 >

施用displaytag完成大数据量分页显示的例子

2012-08-28 
应用displaytag完成大数据量分页显示的例子应用displaytag在struts中完成大数据量分页显示,Oracle数据库?J

应用displaytag完成大数据量分页显示的例子

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

?

JSP文件:

?

施用displaytag完成大数据量分页显示的例子<%@?taglib?uri="/WEB-INF/displaytag.tld"?prefix="disp"?%>
施用displaytag完成大数据量分页显示的例子
施用displaytag完成大数据量分页显示的例子<disp:table?name="resultList"?export="true"?pagesize="100"?requestURI="logQueryAction.do"?sort="external"?id="element"?partialList="true"?size="resultSize">
施用displaytag完成大数据量分页显示的例子??????????<disp:column?property="operdate"?title="操作时间"?></disp:column>
施用displaytag完成大数据量分页显示的例子??????????<disp:column?property="pername"?title="操作人员"?></disp:column>
施用displaytag完成大数据量分页显示的例子??????????<disp:column?property="opertype"?title="操作类型"?></disp:column>
施用displaytag完成大数据量分页显示的例子</disp:table>?
施用displaytag完成大数据量分页显示的例子

?

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:

?

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

?

其中的页面导航是英文的,只要修改org.displaytag.properties.TableTag.properties配置文件就可以把英文改成中文。同时还可以指定导出文件的类型以及文件名。

施用displaytag完成大数据量分页显示的例子export.excel=true
施用displaytag完成大数据量分页显示的例子export.excel.label=<span?class="export?excel">Excel?</span>
施用displaytag完成大数据量分页显示的例子export.excel.include_header=true
施用displaytag完成大数据量分页显示的例子export.excel.filename=export.xls

如果不指定文件名,在点击导出excel的时候,就会在ie窗口中打开excel文件。很烦人!
指定文件名后就可以选择保存和打开了。

热点排行