<rt id="bn8ez"></rt>
<label id="bn8ez"></label>

  • <span id="bn8ez"></span>

    <label id="bn8ez"><meter id="bn8ez"></meter></label>

    隨筆-13  評論-28  文章-63  trackbacks-0

    應用displaytag在struts中完成大數(shù)據(jù)量分頁顯示,Oracle數(shù)據(jù)庫

    ?

    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 > ?

    ?

    name="resultList" 將記錄集存在session或者request中的鍵值
    export="true" 是否顯示導出選項
    pagesize="100" 每頁顯示100條數(shù)據(jù)
    requestURI="logQueryAction.do"? struts中action的名稱,如果記錄少,可以直接分頁
    sort="external"? 外部排序
    id="element"?? 表格id值,用于程序得相關的參數(shù)
    partialList="true"? 分段從數(shù)據(jù)庫中讀數(shù)據(jù)
    size="resultSize"? 記錄的總條數(shù),用于計算總頁數(shù)

    ?

    struts action:

    ?

    String?pageIndexName? = ? new ?org.displaytag.util.ParamEncoder( " element " ).encodeParameterName(org.displaytag.tags.TableTagParameters.PARAMETER_PAGE);?? // 頁數(shù)的參數(shù)名
    ????????
    int ?pageSize? = ? 100 ;?? //每頁顯示的條數(shù)
    ????????
    int ?pageIndex? = ?GenericValidator.isBlankOrNull(request.getParameter(pageIndexName)) ? 0 :(Integer.parseInt(request.getParameter(pageIndexName))? - ? 1 );? //當前頁數(shù)
    String?sqlCount?
    = ? " select?count(*)??from?user_log?a? " ;? //用于統(tǒng)計總記錄數(shù)的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 )));???? //將總記錄數(shù)保存成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文件。很煩人!
    指定文件名后就可以選擇保存和打開了。



    Trackback: http://tb.blog.csdn.net/TrackBack.aspx?PostId=1076047

    posted on 2006-10-31 17:53 七匹狼 閱讀(497) 評論(0)  編輯  收藏 所屬分類: java
    主站蜘蛛池模板: 亚洲熟妇av一区二区三区下载| 亚洲AV一宅男色影视| 国产成人亚洲精品| 精品国产免费人成电影在线观看 | 日本亚洲免费无线码 | 国内外成人免费视频| 久久亚洲国产最新网站| 无限动漫网在线观看免费| 亚洲一卡一卡二新区无人区| 在线天堂免费观看.WWW| 亚洲中文无码线在线观看| 在线看片免费不卡人成视频| 亚洲а∨天堂久久精品9966| 蜜桃精品免费久久久久影院| 污视频网站在线免费看| 在线a亚洲v天堂网2019无码| 久久成人免费大片| 亚洲理论在线观看| 免费黄色毛片视频| yellow视频免费看| 亚洲好看的理论片电影| 在线免费观看中文字幕| 亚洲高清有码中文字| 伊人久久亚洲综合影院| 国产色无码精品视频免费| 久久精品国产亚洲AV无码娇色| 婷婷亚洲综合一区二区| 亚洲AV无码一区二区三区国产 | 国产亚洲视频在线观看网址| 久久久久一级精品亚洲国产成人综合AV区 | 久久久www成人免费毛片| 国产精品亚洲专区在线播放| 亚洲人成无码网站| 日韩版码免费福利视频| 无码 免费 国产在线观看91| 亚洲激情在线视频| 国产成人在线观看免费网站| 一级毛片免费观看| 国产亚洲综合视频| 91亚洲精品视频| 久久乐国产精品亚洲综合|