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

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

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

    大明白的天地

      BlogJava :: 首頁 :: 新隨筆 :: 聯系 :: 聚合  :: 管理 ::
      5 隨筆 :: 3 文章 :: 58 評論 :: 0 Trackbacks
    displaytagpro.jpg
    由于displayTag只處理數據的顯示,傳遞給他多少數據,它會根據數據的記錄數及其
    每頁顯示多少計算出需要的頁數,
    但是在處理大數據量集合的時候,會遇到問題,就是將所有的數據傳遞給displayTag表格顯示標簽
    變得不現實也沒有必要,如何既能夠用到dispalyTag強大的顯示功能,用能夠很好的處理大數據量的
    顯示和分頁功能呢?
    基于以下幾點
    1 盡量不要更改原displayTag標簽的源代碼,該部分由原作者更改更為合適
    2 盡量少的限制原有標簽的功能
    3 即插即用,非強迫性的.
    4 和數據庫等數據源分離,做到無依賴
    如何解決display?
    既然不要更改原來的dispalyTag源碼,那么就自己做一個標簽了,主要就是解決大數據量顯示和分頁功能
    那就自己做一個分頁功能的標簽,數據集合由用戶自己定義,標簽只提供一些頁面的傳遞信息和
    一些用戶用來部分提取數據的基本數據

    本人又做了一個DisplayTagPro標簽用于解決這樣的問題,用法很簡單,又可以用DisplayTag的強大的顯示功能
    完全解決了以前我做的那個標簽的局限性

    上面那個圖片顯示的信息看到藍框中的信息是DispalyTag顯示的,下面的分頁功能是DisplayTagPro顯示的.
    同時本標簽針對經常要根據顯示的信息進行查詢,篩選等需求,增加了用戶自定義信息的功能,用戶可以在
    PageInfo類中得到這些信息進行對集合的進一步處理,達到自定義查詢等其他要求.

    》》》源代碼:
    http://www.tkk7.com/Files/qixin000/displaytagpro.rar
    該部分代碼已經和displayTag沒有關系了,當然如果和displaytag結合也沒有問題
    我發現displaytag有個問題,就是在處理自由布局時,在翻到第二頁是有問題,不知大家遇到過沒有
    所以最終我拋棄了displaytag標簽,而用jstl及其el來做顯示,很好用


    用法:
    可以在Demo中看到,可以一般的標簽用法一樣:
    修改web.xml ,工程中引入displaytagpro.jar
    頁面上的用法:
    <%@ taglib prefix="qixin" uri="qixin000" %>
    <%
        request.setAttribute("w_testId_name", "qixin");
        request.setAttribute("w_testId_age", 10);
    %>
    <qixin:displaywrap uid="testId" name="test" pagesize="5" userclass="com.test.displaytag.DisplayTagTestHandle" />
    處理類的定義:
    該類用戶可以自定義,只需繼承抽象類AbstractHandler,實現Object getDisplayCollection(PageInfo pageInfo)方法即可,用戶可以從pageInfo中得到需要的信息,有很多

    注意:本標簽部分限制了DisplayTag標簽的功能
    1 一個頁面不能夠有兩個DisplayTag標簽了,遺憾,但是我不經常這樣做
       解決辦法:可以通過frame來解決
    2 DisplayTagPro標簽的uid,name要和DisplayTag的uid,id,name相同,pagesize屬性也要相同
       uid相同是為了計算d_\d+_[o|s|p]中間的數字用的
       name相同,是為了形成的集合便于DisplayTag顯示
       pagesize相同是為了不讓DisplayTag標簽顯示自己的分頁功能
    3 用戶自定義的信息必須是d_myid_w[0-9],例如(d_myid_w0,d_myid_w1)
       定義之后可以在自定義的類中通過pageInfo.getAddinInfo()進行提取,做進一步的處理.
       可以通過這個功能達到更復雜的處理.
    4 userclass為用戶自定一個數據處理類,在這個完成數據的最終提取,在這里用戶可從pageInfo中
       得到很多關于頁面上的信息,及其分頁信息
    其他的限制倒不是很多!

    由于這個標簽比較簡單,所以我就沒有寫更多的幫助文檔,很多可以根據命名和注釋即可了解!

    注意:
    本標簽只支持jdk1.5以上,我用了foreach
    jsp版本我倒是不知道,但是我在jboss4.2,tomcat5上測試通過,版本沒看!
    posted on 2005-07-26 13:45 大明白 閱讀(8216) 評論(48)  編輯  收藏

    評論

    # re: DispalyTag功能擴展,解決大數據量顯示,分頁功能的問題! 2005-07-26 15:52 emu
    原來也想過做相同的東西,但是關鍵問題沒有想通。其實displaytag的開發者倒也未必沒想過這個問題,但是可能要找一個漂亮簡單通用的解決方案真的不大容易吧。

    如果一次不把全部數據交給displaytag去分頁,那么在翻頁的時候就要重新進行查詢,那么displaytag就不得不和數據訪問部分綁定,這樣標簽就沒有辦法通用化了。

    我很有興趣的是大明白的displaytagpro怎么解決翻頁的時候重新查詢呢?

    就是demo里面的displaytagpro.jar文件對嗎?怎么不提供原碼?  回復  更多評論
      

    # re: DispalyTag功能擴展,解決大數據量顯示,分頁功能的問題! 2005-07-26 16:42 大明白
    實際上要解決這樣的問題,大家應該想法都差不多
    為什么DisplayTag沒有實現很好的分頁,并不是他不能夠實現,因為這和他做的顯示工作無關,他只是負責把需要的數據顯示出來,而且做得很好。
    開發DisplayTag標簽的人,應該想的是讓我們應用他很好的處理顯示,靈活的定義顯示的功能,而且這點他做到了,而且很好用

    處理大數據量問題是,實際上就是如何提取部分信息,給DispalyTag顯示,但是又得讓它正確處理分頁,這點DisplayTag做不到,因為這也不是他的職責

    我的基本思路是這樣的:
    因為DisplayTag計算分頁也是根據實際的記錄數計算的,而我們傳遞的是部分數據,所以DT計算不正確,必須給他看到好像是全部數據,他才能分頁得很好,如果他做不到,我們就在傳遞部分數據的同時,在傳遞一個總數不就可以正確計算分頁了.
    那就給他一個虛的總數唄;
    我們自己用這個虛的總數來計算該分多少頁,我們自己做這個分頁功能
    而讓DisplayTag來顯示不就行了嗎,每次都經過我們自定一個處理類來完成信息的提取數據給它顯示。

    所以這里沒有什么技術難度,只是一個思路的問題,開始我倒是想改DisplayTag的源代碼了,但是他復雜,怕給改壞了,而且不易于升級版本,所以就作了一個標簽,來由用戶產生數據給DT顯示,而分頁有我的DTP來顯示;現在得到了很好的應用!

    關鍵這里的一個我認為好的擴展是:可以自定義一些信息來處理篩選信息用的AddinInfo,達到了復雜查詢等的目的。  回復  更多評論
      

    # re: DispalyTag功能擴展,解決大數據量顯示,分頁功能的問題! 2005-07-29 16:57 lyjjq
    首先肯定,大明白 的想法慢好的,也付出了一些努力,但你的東西放在我的機器上怎么報錯呢?javax.servlet.ServletException: com/qixin/taglib/displaytagpro/DisplayWrapTag (Unsupported major.minor version 49.0)
    at org.apache.jasper.servlet.JspServlet.service(JspServlet.java:249)
    能幫我解釋一下嗎,順便說一下你的控件能不能繼續改造成這鐘模式,可能有一定工作量,輸入四個參數:Collection,pagesize,rowsize,style,解釋一下:Collection是要顯示的結果集,pageSize是頁面顯示的數量,rowsize是每行顯示的列數,style是顯示的風格!
    謝謝了,這段時間忙,有控多交流  回復  更多評論
      

    # re: DispalyTag功能擴展,解決大數據量顯示,分頁功能的問題! 2005-07-29 17:14 大明白
    改起來倒是很簡單,因為這個標簽本來就沒多東西,代碼也很簡單
    但是請注意:
    這個標簽是在jdk1.5上開發的,檢查一下你的是不是1.5
    運行環境jboss,tomcat5;其他的我沒有測試過,應該不會出問題,這個標簽沒有用到什么特別的技術

    另外你提的修改方案都已經有了,實際上是重復的
    Collection要顯示的結果及實際上就是這里的name,他把生成結果集命名為你定義的name,可以在你定義的scope范圍內找到這個集合
    pagesize已經有了,這個不說
    rowsize,我的這個標簽中形成的結果集的對象的屬性個數;
    style:我是充分利用了DisplayTag的顯示功能,所以我自己的標簽只有一個class,是固定的叫
    span.pagelinkspro {
    background-color: #eee;
    border: 1px dotted #999;
    padding: 2px 4px 2px 4px;
    width: 79%;
    display:block;
    border-top: none;
    margin-bottom: -5px;
    }
    其他的全部是DispalyTag的,他怎么定義就怎么用,所以也沒有必要取其一個style,因為就一個pagelinkspro,固定的,就是定義下面分頁欄風格的

    不好意思,給你的全否了  回復  更多評論
      

    # re: DispalyTag功能擴展,解決大數據量顯示,分頁功能的問題! 2005-08-01 09:50 yingyi
    我要從數據庫里邊調數據怎么用呀!
      回復  更多評論
      

    # re: DispalyTag功能擴展,解決大數據量顯示,分頁功能的問題! 2005-08-01 11:59 大明白
    這里有個例子你可以看一看:
    http://www.tkk7.com/Files/qixin000/1.1.rar
    里有四個文件,但是沒有給出完整的例子,如何使用看這里
    http://www.tkk7.com/qixin000/articles/8474.html
    其中一個就是演示如何從數據庫中提取部分數據,主義這個只是演示,至于你在哪里進行數據庫連接,那里傳遞數據,根據你的需要定:
    CustomerHandler.java
    這個給出了一個如何從數據庫中提取部分數據的例子.返回給頁面

    如果你想快速開發而不太在乎結構是否合理,可以采用qixin000tag我寫的一個標簽,就是把數據訪問也放到了標簽里,所以各不用你去管如何提取數據,只需配置好配置文件即可.
      回復  更多評論
      

    # re: DispalyTag功能擴展,解決大數據量顯示,分頁功能的問題! 2005-08-01 12:06 大明白
    出于演示目的,切勿模仿,否則讓人給批了,后果自負! : )

    package com.qixin.taglib.displaytagpro.test;

    import com.qixin.taglib.displaytagpro.PageInfo;
    import com.qixin.taglib.displaytagpro.handle.AbstractHandler;

    import java.sql.Connection;
    import java.sql.DriverManager;
    import java.sql.ResultSet;
    import java.sql.Statement;
    import java.util.ArrayList;
    import java.util.List;

    /**
    * Created by qixin.
    * User: qixin
    * Date: 2005-7-25
    * Time: 18:54:17
    */
    public class CustomerHandler extends AbstractHandler {
    protected Object getDisplayCollection(PageInfo pageInfo) {
    // TestList list = new TestList(143, false);
    // pageInfo.setMaxCount(143);
    // List subList = list.subList(pageInfo.getStart() - 1, pageInfo.getEnd() > list.size() ? list.size() : pageInfo.getEnd());
    // return subList;

    List list = new ArrayList();
    try {
    /**
    * 數據庫部分可以進一步封裝,可以不在這里寫,這里只是演示如何提取部分數據
    */
    Class.forName("com.microsoft.jdbc.sqlserver.SQLServerDriver");
    String url = "jdbc:microsoft:sqlserver://192.168.0.177:1433;DatabaseName=paper";
    Connection conn = DriverManager.getConnection(url, "sa", "");
    Statement st = conn.createStatement(ResultSet.TYPE_SCROLL_INSENSITIVE, ResultSet.CONCUR_READ_ONLY);
    ResultSet rs = st.executeQuery("select ID,編號,存貨人 from 入庫單");
    rs.last();
    int maxCount = rs.getRow();
    pageInfo.setMaxCount(maxCount);
    rs.beforeFirst();
    int begin = pageInfo.getStart() - 1;
    if (begin > 1) rs.absolute(begin);
    int i = 0;
    while (rs.next() && i < pageInfo.getPageSize()) {
    CustomerBean bean = new CustomerBean();
    bean.setId(rs.getString("id"));
    bean.setNo(rs.getString("編號"));
    bean.setPerson(rs.getString("存貨人"));
    list.add(bean);
    i++;
    }
    return list;
    }
    catch (Exception e) {
    e.printStackTrace();
    }
    return list;
    }
    }


    其中:
    這里有很重要的兩句:
    1,就是根據
    pageInf.getStart(), pageInfo.getEnd()獲得要提取的數據范圍

    2,就是要設置
    pageInfo.setMaxCount(int); 設置要分頁的總記錄數,這個可以是一個虛擬的,你想設置多少都行,但是最好和你的集合的記錄數相同,否則,分頁到最后,如果你的處理類沒有處理好數據的提取,會出錯的!

    還有如果泥提取數據不僅僅是根據這個來的,還有你頁面定制的自定義信息,那么可以通過pageInfo.getAddinInfo()來獲得一個Map來供自己進一步處理數據之用,可以達到更好的效果.  回復  更多評論
      

    # re: DispalyTag功能擴展,解決大數據量顯示,分頁功能的問題! 2005-08-01 15:02 lyjjq
    看了你的回復我很高興,很高興的告訴你,禮拜六開始學習自定義標簽,我把你的自定標簽修正了一下,同時把displaytag重構了!看看我的顯示結果:
    我怎么上傳文件或者圖片呢?
    實際上我的目的是在每一個可以顯示任意多的元素!
    這個是我的測試代碼
    <%@ page contentType="text/html;charset=UTF-8" language="java"%>
    <%@ taglib prefix="display" uri="displaytag"%>
    <%@ taglib prefix="linktone" uri="linktonetag"%>
    <%@ page
    import="com.lee.orderdish.util.ParamUtils,org.displaytag.sample.*,java.util.*,org.displaytag.tags.TableTag,com.linktone.taglib.displaytagpage.PageInfo"%>
    <html>
    <head>
    <title>display tag 分頁測試</title>
    <link rel="stylesheet" href="css/screen.css" type="text/css" />
    </head>

    <body>
    <%int currentPage = ParamUtils.getIntParameter(request,
    "currentPage", 1);
    TestList list = new TestList(100, false);
    PageInfo pageInfo = new PageInfo();
    pageInfo.setMaxCount(100);
    pageInfo.setPageSize(6);
    pageInfo.setCurrentPage(currentPage);
    int startindex = pageInfo.getStart() - 1;
    int endindex = pageInfo.getEnd() <= list.size() ? pageInfo.getEnd()
    : list.size();
    out.println("startIndex:" + startindex);
    out.println("endIndex:" + endindex);
    java.util.List subList = list.subList(startindex, endindex);

    request.setAttribute("test1", subList);

    %>

    <linktone:displaywrap uid="aas" name="test" pagesize="6" maxsize="24"
    requestURI="index.jsp" append="age=psg&type=1">
    <display:table uid="aa" name="test1" align="center" pagesize="6" rowsize="4"
    requestURI="jiang.do" class="ITS">
    <table>
    <tr>
    <td><a href="javascript:">jiang{id}</a></td>
    </tr>
    <tr>
    <td>{name}</td>
    </tr>

    </table>
    </display:table>
    </linktone:displaywrap>
    </body>
    </html>

    我在displaytag標簽加了rowsize,display標簽的body作為一個元素的內容顯示,里面有{attribute}代表了某個屬性值!這樣顯示的東西完全符合我的要求了!你的代碼我看過了,寫的不錯!在導航條的地方前面最好加個<div align="center">讓你的分頁居中吧,這樣好看點!還既然有了你的導航條,就要把dispaly的導航條去掉,這個我都作到了!再次感謝你激發了我的創造激情!  回復  更多評論
      

    # re: DispalyTag功能擴展,解決大數據量顯示,分頁功能的問題! 2005-08-01 15:23 lyjjq
    這里提交東西不是太方便:我把上面內容放在我的個人空間里了:
    http://spaces.msn.com/members/jiangjianqiang/
    到那里可以看到圖形顯示!  回復  更多評論
      

    # re: DispalyTag功能擴展,解決大數據量顯示,分頁功能的問題! 2005-08-01 16:21 keith
    希望樓主能提供DispalyTagPro的src出來。期待  回復  更多評論
      

    # re: DispalyTag功能擴展,解決大數據量顯示,分頁功能的問題! 2005-08-01 17:03 劍客
    是啊,讓大家一起想辦法更好地解決這個問題。
    displaytag這么慷慨的就開源了,樓主發揚精神啊。
    我只想看看你的源碼,謝謝  回復  更多評論
      

    # re: DispalyTag功能擴展,解決大數據量顯示,分頁功能的問題! 2005-08-02 09:57 大明白
    自覺的還有不好的地方所以一直沒有拿出來,如果大家需要,現在奉上:
    http://www.tkk7.com/Files/qixin000/displaytagpro.rar  回復  更多評論
      

    # re: DispalyTag功能擴展,解決大數據量顯示,分頁功能的問題! 2005-08-02 10:23 大明白
    可能是我理解錯誤,現在說幾點你的用法,如果理解錯誤,見諒:
    //dispalytagpro==dtp
    //displaytag == dt
    你把dt的屬性requestURI放到了dtp上,那dt的排序等功能好象就不好使了,你就的自己處理了,傳遞的信息也會錯誤,或者根本沒有傳遞過來,或者傳遞過來了,會丟失一些QueryString信息,所以不推薦改這里,所以我坐的那個標簽是比較充分考慮利用dt的所有功能的前提下來做的這個標簽,如果你修改了dt,那以后,dt作者增加了功能,你不由得改dt,多麻煩,而且dt有很多隱含的功能,等待去發掘,dtp只是提供數據而已,所以盡量在挖掘dt的功能基礎上來改善dtp功能,我覺得更好
    還有就是append屬性,這個可能你沒有發現,我里面有一個提取QueryString除了d -\d+-[s|o|p]字符串以外的其他傳遞信息給PageInfo.AddinInfo屬性,你從哪里可以獲得到你設置的 request.parameter,attribute值,所以這里有點多余,不信你試一試在request里設置一個attribute,然后翻一下頁你就會看到 ,查詢字符串多了一項,而且你也可以從后臺pageInfo.getAddinInfo()中或得到這些信息

    還有就是一個居中的問題,你可以調整樣式單,而不用該代碼,我覺得居中有個問題就是,當你點那些直接跳轉的1,23,4,5時,會出現兩面同時動的情況,因為他們有時是一位數字,有時是兩位數字,會出現同時左右伸縮問題,很難受,左對齊有個好處就是,一側縮放! 所以說各司其責,dt顯示,dtp提供數據,如果你想在一行顯示任意多的數據,你可以細細的查一查dt的功能里有沒有,我想很多功能你么沒有發現,dt很強的,比如那個自由格式的顯示,見我的另一篇隨筆,那就是我不知道dt有沒有這個能力的前提下,仔細想的,結果實現了,所以不要重復做工作。 現在dt做的工作,已經實現了大部分.net里datagrid的功能,很不錯, 所以在java里顯示數據,我現在不愁了,完全用這兩個標簽實現一個現在一個典型論壇的顯示,很強,但是我做一個樣例給大家看看 不好意思,又給提意見了, lyjjq  回復  更多評論
      

    # re: DispalyTag功能擴展,解決大數據量顯示,分頁功能的問題! 2005-08-02 10:29 keith
    DispalyTag這項目好像停了吧,怎么到現在一點動靜也沒有了。懷疑!!
    如果真停了,希望有人能接手繼續開發維護,但不希望用來謀利  回復  更多評論
      

    # re: DispalyTag功能擴展,解決大數據量顯示,分頁功能的問題! 2005-08-02 10:36 大明白
    to lyjjq
    如果你想把所有數據顯示在一行或者你想靈活控制
    你的dt用法錯誤
    你應該dispaly:table中加一個display:column軟后在其中提取數據循環,而不是像你這樣在display:table加了一個<table>
    上傳圖片及其現實的問題都是dt的事,都可以實現,自己發現吧!

    去掉displaytag的分頁欄,請修改樣式單將其變為hidden即可  回復  更多評論
      

    # re: DispalyTag功能擴展,解決大數據量顯示,分頁功能的問題! 2005-08-02 11:40 lyjjq
    這是我用dt 顯示數據的例子, 如果在<display:column 中在加數據循環可能會讓程序復雜!用戶不易使用,!也也許能實現一行多數據,但,dt給的例子中好像做不到!我認為<display:table>xxxx</display:table> XXX部分的操作都是對當前數據行的操作,而不能在XXX部分對多行操作,所以被迫無奈我修改了dt的輸出機制!,以便符合我的輸出要球,你的displaytag的理解比我要深,能否提供怎么寫?
    <display:table name="test" class="its" width="500" id="currentRowObject">
    <display:column title="選中" align="center" >
    <html:multibox name="GroupForm" property="ids" onclick="CCA(document.GroupForm);" value="<bean:write name ="currentRowObject" property="id"/>"></html:multibox>
    </display:column>
    <display:column property="id" align="center" title="編號" />
    <display:column property="groupName" align="center" title="組名" />
    <display:column title="成員" align="center" >
    <a href="<%=request.getContextPath()%>/contact/privatecontactmenlist.jsp?groupid=<bean:write name ="currentRowObject" property="id"/>">成員</a>
    </display:column>
    <display:column title="添加/刪除成員" align="center" >
    <a href="javascript:MM_openBrWindow('<%=request.getContextPath()%>/contact/modgroup.jsp?groupid=<bean:write name ="currentRowObject" property="id"/>','','height=550,width=520,top=0,left=100');">添加刪除成員</a>

    </display:column>
    <display:column property="groupDesc" align="center" title="組描述"/>
    </display:table>

    1.yi這個css能控制居中嗎?,我加了align="center"好像沒用,頁面控制我很差的特別是css

    span.pagelinks {
    background-color: #eee;
    border: 1px dotted #999;
    padding: 2px 4px 2px 4px;
    width: 80%;
    display:block;
    border-top: none;
    margin-bottom: -5px;
    }

    3.至于更改uri名字的事情,沒辦法,我這是為公司同事開發的,寫誰都不合適,只有用公司的了,況且我也實現了很多輸出功能呀!


    4.剛用了幾天displaytag,理解的不深,多多指導!  回復  更多評論
      

    # re: DispalyTag功能擴展,解決大數據量顯示,分頁功能的問題! 2005-08-02 14:27 大明白
    to lyjjq
    span.pagebanner {
    margin-top: 0px;
    margin-bottom: 0px;
    visibility: hidden; //這里隱藏了
    }

    span.pagelinks {
    margin-top: 0px;
    margin-bottom: 0px;
    visibility: hidden; //這里隱藏了
    }
    //這個是我的標簽的分頁欄樣式單:
    span.pagelinkspro {
    background-color: #eee;
    border: 1px dotted #999;
    padding: 2px 4px 2px 4px;
    width: 79%;
    display:block;
    border-top: none;
    margin-bottom: -5px;
    display:block;
    direction:rtl; //這里可以設置左右顯示,但是不能設置居中,遺憾
    }

    個人意見,不推薦更改dt標簽!


    如果你要實現一行顯示多個,如果dt頁面控制不了的話,那你就更該輸出的Collection,它支持很多集合類,你可以在輸出的集合中進行設計,應該可以實現的,我沒有試過!
      回復  更多評論
      

    # re: DispalyTag功能擴展,解決大數據量顯示,分頁功能的問題! 2005-08-02 17:27 apple
    哪些部分用了1.5的語法?
    我的服務器是基于1.4的,估計用不起來,所以想改動一下你的源碼。  回復  更多評論
      

    # re: DispalyTag功能擴展,解決大數據量顯示,分頁功能的問題! 2005-08-03 10:28 大明白
    你編譯一下就能夠看出來那些錯誤的地方,然后在改吧!,我也不太記得,因該就是用了foreach的緣故,沒有別的了,你可以檢查一下,把那里改成普通的for即可  回復  更多評論
      

    # re: DispalyTag功能擴展,解決大數據量顯示,分頁功能的問題! 2005-08-03 10:37 keith
    我大體研究了你的源碼,發現你的標簽用處不是很大,對于大量數據的問題還是不能很好的解決。為什么呢?
    對大量數據來說,我們一般采用數據庫,我們希望能從數據庫中取出分頁所顯示的部分記錄。其實難道也是針對數據庫進行分頁,上面樓主提到用while (rs.next() && i < pageInfo.getPageSize()) 還是通過控制游標來獲取所需要的記錄。這樣對數據量很大時還是比較慢的,盡管沒有取出所有記錄速度上有了提升。

    還有個問題就是對安表頭排序的問題,標簽只是先取出本頁記錄,然后對本頁記錄再排序。而實際應用中希望的絕大部分是先安數據庫字段來排序,然后取出本頁的記錄。所以你的分頁功能沒有太大的意義,個人觀點,武斷了點,見諒!  回復  更多評論
      

    # re: DispalyTag功能擴展,解決大數據量顯示,分頁功能的問題! 2005-08-03 11:17 大明白
    to keith
    第一點,提取數據問題,這個標簽只是給出一個要提取數據的范圍,倒是你是要用 select top 提,還是oracle的特殊語法提取,那就是開發者的事情了,所以這里不能給出針對不同數據的在sql上的提取,那是進一步對數據庫的處理,和這個標簽沒有關系,否則,我不做了一個hibernate分頁功能了,還的定義不同數據庫的語義,你覺得那時這個標簽該做的事情嗎!!!
    注意:那只是演示代碼,當然提取數據也不止那一種,而且我用的是absolute來直接定位游標位置的,而不是用的循環,只有在提取數據時用了循環, 還有就是用select top 10 ....(sql server)還有其它數據庫類似用法提取數據,我現在就知道這兩種快速提取數據的辦法,你還有其他的好的方法提取數據嗎?高效的!可以告訴我嗎?

    第二點,你說的排序問題,實際上你又把問題攪到一塊去了,這個標簽提供了當前是按第幾列進行排序信息,至于有用到這個信息,在sql語句添加不同 order by的問題,那是利用這個標簽的開發者的事情,同樣不是這個標簽的問題,

    所以利用這個標簽的人只能做這些事情
    根據頁面傳過來的消息,來作整理數據集合的事情,
    標簽提供了用戶接口信息,
    例如,從那條到那條,那列處于排序狀態等等,志與開發者如何利用這信息,那就不是這個標簽的事情了,實際上,完全可以在這個基礎上在進一步的對這些信息在針對不同數據再進行封裝,會更好,而不應該做到這個標簽里面

    不知道你同不同意這個觀點

    如果你不太講究結構的化,我以前做的qixin000tag標簽完全可以達到你的要求,適用范圍不一樣,那個很省事,開發也很快,但是由于數據訪問都封裝到里面去了,有些開發者可能不愿意,所以,我又做了著更開放的小標簽,
    大家可以在這個基礎上再進行更改,實際上也沒有太大的更改之處了,因為就是一個通過頁面信息進行提取數據的功能,至于如何提取,是進一步的事情!!!!
    所以大家可不要說將一個標簽的功能弄得大而全,那就沒有了靈活性,而應該都弄成小的模塊,來組合更好,就像DisplayTag沒有作更好的針對數據的分頁功能一樣,那不是他該做的事情,你說對不對!   回復  更多評論
      

    # re: DispalyTag功能擴展,解決大數據量顯示,分頁功能的問題! 2005-08-03 12:52 keith
    to 大明白:

    既然對大量數據的處理和DT原來的處理方式差不多,那你的標簽有什么意義呢?

    當然你標簽的優點是讓取出來的實際記錄條數和pageInfo.setMaxCount(int)分開,而DT實際記錄數和maxCount是相同的。所以DT要顯示分頁就必須取出所有記錄。

    另外我發現,當URL參數比較多的情況下,你的標簽可以正常保持住參數,但DT的標簽卻將參數丟失了(點擊表頭排序時)。我測試了DT原來的例子是可以保持參數的。
    后來將:qixin0改為0,qixin1改為1,DT運行就正常了,參數不會丟失。像qixin0這樣長參數就有問題。
    request.setAttribute("d-1234-w0", "0");
    request.setAttribute("d-1234-w1", "1");
      回復  更多評論
      

    # re: DispalyTag功能擴展,解決大數據量顯示,分頁功能的問題! 2005-08-03 13:21 大明白
    to keith
    你還是沒有理解我坐的標簽的意思
    我坐的標簽沒有用dt的分頁功能,而是自己做的,拋棄了dt的分頁,正因為dt有像你說的那個缺點,所以只有把所有數據傳過去,他才能正確分頁,所以我自己做了一個分頁的欄,而傳遞給dt的只有一頁數據,所以自然它就不分頁了,但是還要顯示所有數據的分頁怎么辦,所以就設置了一個setmaxCount虛擬的總數,爾并沒有給他那么多數據顯示,但是 我的標簽卻可以根據這個數來計算分頁,達到傳遞一頁數據仍然能夠很好處理分頁的目的,難道你沒有明白嗎,你還是再看看我的代碼吧!!
    一句話就是:dt只顯示一頁,dtp分頁
    我現在只發現dt有這樣幾個參數,s,p,o其他均作為addminInfo參數傳遞,應該不丟失,只是位置放錯了,可以從addinInfo中得到,如果有問題可以自己修改,反正有源碼!

    注意事項看我的主題帖子!  回復  更多評論
      

    # re: DispalyTag功能擴展,解決大數據量顯示,分頁功能的問題! 2005-08-08 10:28 even
    我想問問這樣如果使用導出功能時,只能導出page的數據,而不能導出List的數據,對嗎?  回復  更多評論
      

    # re: DispalyTag功能擴展,解決大數據量顯示,分頁功能的問題! 2005-08-10 11:38 大明白
    to even
    實際上我也沒用過displaytag的導出功能,所以我也不知道displaytag是如何設定導出數據的,我想他導出時應該走一遍后臺,你可以看看是如何導出的,這應該是displaytag的功能,如果他要所有的數據,那你就dt通過標志位,在CustomHandler里面取就是了,要多少有多少!  回復  更多評論
      

    # re: DispalyTag功能擴展,解決大數據量顯示,分頁功能的問題! 2005-08-23 21:07
    各位用valuelist不就輕松解決這個問題了嗎?  回復  更多評論
      

    # re: DispalyTag功能擴展,解決大數據量顯示,分頁功能的問題! 2005-10-13 13:25 lx
    讀了半天。還是最后一個人說到點子上了。  回復  更多評論
      

    # re: DispalyTag功能擴展,解決大數據量顯示,分頁功能的問題! 2005-10-14 11:12 qixin000
    現在我發現現實就是用<c:forEach>最好
    但是需要一個提取數據用的類,我做的就是這個標簽庫
    valuelist太麻煩,好像還得和spring弄在一塊,麻煩,而且要求人家必須用spring不太好
    如果單從顯示的方面來說還不如用jstl:foreach  回復  更多評論
      

    # re: DispalyTag功能擴展,解決大數據量顯示,分頁功能的問題! 2005-11-10 17:41 sophitia
    看了樓主的帖子所是代碼必須在JDK1.5以上運行,我使用的1.4.08不知道用1.5對我以前的程序會有什么影響。
    然后就是我覺得有幾個問題想問,通過這種實現雖然解決的關于大數據量的分頁面,但是displayTag提供的排序功能肯定全局的排列序列不能用了,局部排序也不一定能使用(由于我沒有測試過)。這樣displaytag好象就只是用來顯示表的作用,其他作用就完全沒有了。
    不知道說得是否恰當,請 大明白 回答  回復  更多評論
      

    # re: DispalyTag功能擴展,解決大數據量顯示,分頁功能的問題! 2005-11-11 14:18 qixin000
    我現在已經不用displaytag來做顯示了,我現在用jstl的foreach來做顯示,所以我把我的標簽做的完善了一些,但是指作為提取數據之用,我把頁腳也單獨作為一個標簽了,但是由于內部url用了utf-8編碼,現在只支持web application 中的URIEncoding=UTF-8這種設置,我沒改,也懶得改了.如果你有血藥我可以給你源代碼,你自己將這里變成配置文件,這樣你就可以設置了.
    jdk1.5在這個標簽我用到了泛型及foreach,所以jdk1.4不能用

    而其使用這個標簽的規范我已經改改了
    你再看看使用說明吧  回復  更多評論
      

    # re: DispalyTag功能擴展,解決大數據量顯示,分頁功能的問題! 2005-11-16 10:41 wafer
    非常好,樓住講講你的新方法是怎么用的吧,有什么好處?  回復  更多評論
      

    # re: DispalyTag功能擴展,解決大數據量顯示,分頁功能的問題! 2006-03-18 11:04 borlandvip
    怎么解決導出excel的時候,不導出列表中的鏈接信息  回復  更多評論
      

    # re: DispalyTag功能擴展,解決大數據量顯示,分頁功能的問題! 2006-04-12 18:21 kikio
    能不能將tag中的請求下一個頁面的url的地址不改變????
    即使是地址欄中的url不變也可以的
    急  回復  更多評論
      

    # re: DispalyTag功能擴展,解決大數據量顯示,分頁功能的問題! 2006-05-10 11:03 fbysss
    跟我的想法一樣,在做這東東之前,先搜了相關資料,發現JAVA在這個地方太弱了!JSP出來這么多年了,連個DATAGRID也沒有!先研究一下你的東西,如果真好的話,可以弄個開源項目,一起發揚光大。  回復  更多評論
      

    # re: DispalyTag功能擴展,解決大數據量顯示,分頁功能的問題! 2006-05-10 13:29 fbysss
    你的demo呢?有沒有完整的?  回復  更多評論
      

    # re: DispalyTag功能擴展,解決大數據量顯示,分頁功能的問題! 2006-07-28 20:37 neon
    大家有不有完整點的DisplayTag標簽資料?  回復  更多評論
      

    # re: DispalyTag功能擴展,解決大數據量顯示,分頁功能的問題! 2006-07-28 20:38 neon
    有的話發給我看看吧 謝了 牛人們
    dudeng2006@163.com  回復  更多評論
      

    # re: DispalyTag功能擴展,解決大數據量顯示,分頁功能的問題! 2006-08-12 23:30 yht
    樓主有沒有完整點的資料!
    發給我一份吧!
    yht0905@sina.com  回復  更多評論
      

    # re: DispalyTag功能擴展,解決大數據量顯示,分頁功能的問題! 2006-08-12 23:30 yht
    樓主所用樣式表有沒有,發給小弟一份好嗎?
    yht0905@sina.com  回復  更多評論
      

    # re: DispalyTag功能擴展,解決大數據量顯示,分頁功能的問題! 2006-08-15 10:40 yht
    我想實現樓主我用樣式,怎么實現,DisplayTag自帶樣式嗎?
    怎么樣設置,樓主能否提供給小弟呢?
    yht0905@sina.com  回復  更多評論
      

    # re: DispalyTag功能擴展,解決大數據量顯示,分頁功能的問題! 2007-01-25 16:18 冥王星
    仔細看display1.1的文檔,里面有提到怎么擴展開支持部分數據的分頁,有兩種方法:1)實現一個它指定的接口;2)直接給tabletag設置相關屬性
    the first one uses the valuelist pattern, and requires that the object that you give to displaytag implements the org.displaytag.pagination.PaginatedList interface. You can pass this object to displaytag as an usual list, and it will extract paging and sorting information from it. This way is more recommended if you have to build your backend layer and you can easily follow this pattern.
    a second way, recommended if you only have to use partial list for few tables that show a performance problem using full lists, is passing all the needed parameters as separate tag attributes (recors to be shown, page number, total number of records...)  回復  更多評論
      

    # re: DispalyTag功能擴展,解決大數據量顯示,分頁功能的問題! 2007-10-31 14:10 Ray Chiang
    您好~我是對岸來的。
    我只在display-table tag中include一個jsp檔,上面使用displaytag的setProperties tag,就可以改變您所指的紅色框部份的風格。
    至於分頁機制,implements PagaintedList interface並從http parameter中取的page number ,及 sortitem等等parameter,並傳入dao就可以針對每次跳頁所從Data base中撈取一定range的data。
    有興趣話,我再把圖貼及部份code貼上來給您看吧~  回復  更多評論
      

    # re: DispalyTag功能擴展,解決大數據量顯示,分頁功能的問題! 2007-11-01 16:06 new
    關于displaytagpro.rar
    web.xml 要怎么配置
    我著怎么老有錯!
      回復  更多評論
      

    # re: DispalyTag功能擴展,解決大數據量顯示,分頁功能的問題! 2007-11-01 17:32 大明白

    @new
    不需要特殊的配置  回復  更多評論
      

    # re: DispalyTag功能擴展,解決大數據量顯示,分頁功能的問題! 2007-11-02 08:55 new
    @大明白

    我不太明白
    displaytag.jar 配置的web.xml
    <filter>
    <filter-name>exportFilter</filter-name>
    <filter-class>
    org.displaytag.filter.ResponseOverrideFilter
    </filter-class>
    </filter>

    displaytagpro.jar 要怎么寫
    不好意思經驗不多 請多多指教  回復  更多評論
      

    # re: DispalyTag功能擴展,解決大數據量顯示,分頁功能的問題! 2007-11-02 11:50 new
    有時間給我傳份完整的例子吧
    上面的哪個下載不了
    我的QQ: 343793577
      回復  更多評論
      

    # re: DispalyTag功能擴展,解決大數據量顯示,分頁功能的問題! 2007-11-06 13:48 大明白
    推薦你用我新寫的一個分頁標簽。那個比較好用,看我的blog  回復  更多評論
      

    # re: DispalyTag功能擴展,解決大數據量顯示,分頁功能的問題! 2008-05-30 14:08 徐杰
    @lyjjq
    jdk版本的問題,他的代碼是在jdk15下編譯的,你用的jdk版本低于1.5導致。。  回復  更多評論
      


    只有注冊用戶登錄后才能發表評論。


    網站導航:
     
    主站蜘蛛池模板: 国产日产亚洲系列| 波多野结衣免费一区视频| 国产一卡二卡四卡免费| 亚洲爆乳无码一区二区三区| 黄色一级视频免费| 夫妻免费无码V看片| 激情综合亚洲色婷婷五月| 麻豆一区二区免费播放网站 | 69免费视频大片| 亚洲精品视频免费看| 99爱免费观看视频在线| 亚洲美女精品视频| 国产在线观看片a免费观看| 成人亚洲国产va天堂| 啊灬啊灬别停啊灬用力啊免费看| 美女免费视频一区二区| 国产啪亚洲国产精品无码| 好紧我太爽了视频免费国产| 亚洲精品一区二区三区四区乱码| 久久国产免费福利永久| 亚洲熟女乱色一区二区三区| 国产午夜鲁丝片AV无码免费 | 亚洲AV成人无码网站| 亚洲AV伊人久久青青草原| 成年女人A毛片免费视频| 亚洲国产精品一区| 人禽杂交18禁网站免费| 曰批全过程免费视频免费看| 亚洲人成网77777色在线播放| 亚洲午夜免费视频| 亚洲日韩AV一区二区三区四区 | 亚洲日韩乱码中文无码蜜桃臀网站 | 亚洲AV无码国产精品麻豆天美| 亚洲成人在线免费观看| 国产AV无码专区亚洲AV麻豆丫| 亚洲精品无码久久久| 91人人区免费区人人| 色天使亚洲综合一区二区| 亚洲精品V欧洲精品V日韩精品| a毛片基地免费全部视频| 一级特黄a免费大片|