亚洲av成人无遮挡网站在线观看,少妇性bbb搡bbb爽爽爽,亚洲av日韩精品久久久久久,兔费看少妇性l交大片免费,无码少妇一区二区三区

  免費注冊 查看新帖 |

Chinaunix

  平臺 論壇 博客 文庫
最近訪問板塊 發(fā)新帖
查看: 4150 | 回復: 0
打印 上一主題 下一主題

Display Tag入門 [復制鏈接]

論壇徽章:
0
跳轉到指定樓層
1 [收藏(0)] [報告]
發(fā)表于 2010-01-08 23:13 |只看該作者 |倒序瀏覽

Display Tag Lib是一個標簽庫,用來處理jsp網(wǎng)頁上的Table,功能非常強,可以對的Table進行分頁、數(shù)據(jù)導出、分組、對列排序等等,反正
我在做項目時需要的功能它都給我提供了,而且使用起來非常的方便。能夠大大減少代碼量。
    介個是Display Tag的官方網(wǎng)站
http://displaytag.sourceforge.net
。
   
首先當然是要下載它的jar包了,這里可以下載到最新的版本。將jar包放到WEB-INF的lib文件夾下。另外還需要兩個輔助包:apache的commons
-lang和standard包,更多的輔助包可以在這里下載。
    在web.xml下添加一個filter
   
        exportFilter
        org.displaytag.filter.ResponseOverrideFilter
   
    在jsp頁面做一個引用:
    首先我們定義一個list
    當我們想在jsp頁面上顯示這個list時,我們只需要寫一句話
   
    display tag會自動生成一個table
    如果list是從控制層拋出來的,name可使用EL表達式表示
   
    這是最簡單的display tag的使用,我們可以給它加上樣式等,也可以定義顯示的列,下面的table顯示復雜一些
  
  
  
  
如果想要給它加個鏈接也很簡單,下面的代碼給name加了連接,并附帶id參數(shù),email也自動連接到
[email=XXX]mailto:XXX[/email]

例子:
下面介紹幾個Display最常用的功能,更多功能請參考
http://www.displaytag.org/index.jsp
。
1. 分頁
    如果想對代碼分頁,只需在display:table標簽中添加一項pagesize="每頁顯示行數(shù)",如
2. 對列排序
    display tag可對列進行排序,就是點擊列名,對該列的數(shù)據(jù)進行排序。你只需對想要排序的列添加 sort="true" 就OK,如下面的代碼可
對前三列進行排序。在display:table中添加defaultsort="列數(shù)",可默認對指定的列排序。
  
  
  
  
   如果table有分頁,Display Tag默認只對當前頁進行排序,如果想對整個list排序,可以在display:table之間添加一段代碼:
3. 導出數(shù)據(jù)
    在display:table中添加export="true",看看會出現(xiàn)什么!Display Tag默認會提供三種數(shù)據(jù)導出方式:CSV、Excel、XML 。
    另外Display Tag還可以導出為PDF格式,在
http://prdownloads.sourceforge.net/itext/
下載一個輔助包iText.jar,copy到lib目錄下,
然后在display:table之間添加一段代碼:
,大功告成。
4. Display Tag的屬性設置
    前面所說的display:setProperty 是一種改變Display Tag屬性的方法,但是在每個jsp中都要寫太麻煩了。
    Display Tag中設置了很多默認的屬性,它有一個專門的屬性文件,是在它的jar包中的displaytag/properties/TableTag.properties
    想要改變它的默認屬性,我們可以在WEB-INF\classes下新建一個文件displaytag.properties,仿照TableTag.properties中屬性的格式設
置需要修改的屬性。
    TableTag.properties中的# messages中設置的是顯示在頁面上的提示信息。默認是英文的,我們可以把它改為中文的。不過這里只能使用
unicode,就是說中文字符必須轉換為unicode碼,這個可以使用jdk自帶的native2ascii.exe進行轉換。
5. displaytag中decorator的使用原理
decorator有兩種,一種是用在displaytag:table中,一種是用在displaytag:column中,前者對整個表中相應屬性有效,后者對單個列有效。
所以,在前者中,你一定要在響應的decorator類中寫上get方法,命名方式為get+beanProperty(bean屬性),前者需繼承TableDecorator類
,后者只需實現(xiàn)ColumnDecorator類的decorate方法即可(return一個String)。
關于decorator的原理,是這樣的,當使用decorator屬性時,數(shù)據(jù)先從bean中被取出,然后被傳入進decorator,前者是在decorator類中調用g
etCurrentRowObject方法得到當前bean,繼而再調用bean的get方法將屬性取出

    public String getDate()
    {
        return this.dateFormat.format(((ListObject) this.getCurrentRowObject()).getDate());
    }
),
后者是數(shù)據(jù)直接被傳進其decorate方法.
當數(shù)據(jù)被處理完成后,再返回到頁面顯示,所以說,decorator類其實是將原有屬性的value進行包裝后輸出的包裝器,它的英文意思為油漆工
,也就是這個意思,這也是一種基本設計模式
但是如果碰到你想要輸出一個checkbox或者radio時,你可以覆蓋掉以前的輸入,直接輸出自己想要的東西,像這樣 :return " "; 那么你就
把輸入進包裝器的數(shù)據(jù)覆蓋成checkbox輸出了。
6.  displaytag的翻頁機制
這可能是displaytag的局限性了,它的翻頁機制是這樣的:
如果一個list中有10000個bean,按照它的機制,如果是第一頁(每頁n條),它會把前n條數(shù)據(jù)取出來,然后再把剩余的10000-n條刪除,當你
點擊頁面“2”的時候,它再從后臺繞一圈,把第二頁的數(shù)據(jù),也就是把第n+1-2n條記錄取出來,把剩余的刪除。這樣,它實現(xiàn)了翻頁,又防止
了內存占用過大。
但是,不管怎么說,它還是有一個取出所有條數(shù)的動作的,在極大數(shù)據(jù)量的情況下,有可能造成內存溢出。
8. displaytag中decorator一例
后臺部分:
=======================================================
import org.displaytag.decorator.TableDecorator;
import java.util.HashMap;
import java.text.SimpleDateFormat;
import java.util.Date;
public class BulletinListDecorator extends TableDecorator{
  private String bulletinId = null;
  private String title = null;
  private SimpleDateFormat sdf = null;
  private int i = 0;
  public BulletinListDecorator() {
    sdf = new SimpleDateFormat("yy-MM-dd");
  }
  public String getBulletinId(){
    i+=1;
    return ""+i;
  }
  public String getTitle(){
    bulletinId = (String)((HashMap) this.getCurrentRowObject()).get("bulletinId");  
    title = (String)((HashMap) this.getCurrentRowObject()).get("title");
    return ""+title+"";
  }
  public String getLastPubD(){
    return sdf.format((Date)((HashMap) this.getCurrentRowObject()).get("lastPubD"));
  }
}
====================================================
前臺部分:
====================================================
   
decorator="com.ztesoft.ds.application.web.bulletin.decorator.BulletinListDecorator">
        
    headerClass="ValueTd"/>
        
        
   headerClass="ValueTd"/>
        
     headerClass="ValueTd"/>
        
     headerClass="ValueTd"/>
   
其中bulletinList是一個ArrayList,titleKey指向了properties文件
====================================================



本文來自ChinaUnix博客,如果查看原文請點:http://blog.chinaunix.net/u3/109937/showart_2144175.html
您需要登錄后才可以回帖 登錄 | 注冊

本版積分規(guī)則 發(fā)表回復

  

北京盛拓優(yōu)訊信息技術有限公司. 版權所有 京ICP備16024965號-6 北京市公安局海淀分局網(wǎng)監(jiān)中心備案編號:11010802020122 niuxiaotong@pcpop.com 17352615567
未成年舉報專區(qū)
中國互聯(lián)網(wǎng)協(xié)會會員  聯(lián)系我們:huangweiwei@itpub.net
感謝所有關心和支持過ChinaUnix的朋友們 轉載本站內容請注明原作者名及出處

清除 Cookies - ChinaUnix - Archiver - WAP - TOP