1. 程式人生 > >display:table 標籤框架 使用

display:table 標籤框架 使用

轉載自:http://blog.sina.com.cn/s/blog_766d163d0100pb80.html

在專案中加入displaytag-1.1.jar和display-export-poi-1.1.jar這兩個包

(在web.xml下新增一個filter,name為exportFilter,class為org.displaytag.filter.ResponseOverrideFilter)

 

在jsp頁面做一個引用:

<%@ taglib uri="http://displaytag.sf.net" prefix="display" %>

 

當我們想在jsp頁面上顯示這個test這個list時,我們只需寫一句話:

<display:table name ="test"/> 或<display:table name ="${test}"/>

display tag 會自動生成一個table

 

上面是最簡單的display tag的使用,我們可以給它加上樣式等,也可以定義顯示的列,如下:

<div class="displayTable">
  <display:table name="staList" id="row" pagesize="15" export="true" class="displaytag" requestURI="staffInfo_browseStaffInfo.action" >
   <display:column title="${label1}" sortable="true" headerClass="sortable" style="text-align:center;">
    ${row_rowNum}
   </display:column>
   <display:column property="sta_id" title="${label2}" sortable="true" headerClass="sortable" style="text-align:center;"/>
   <display:column property="dep_id" title="${label3}" sortable="true" headerClass="sortable" style="text-align:center;"/>
   <display:column property="sta_name" title="${label4}" sortable="true" headerClass="sortable" style="text-align:center;"/>
   <display:column title="${label5}" media="html" style="text-align:center;">
    <s:url action="staffInfo_viewStaff" id="viewStaff">
     <s:param name="sta_id" value="%{#attr.row.sta_id}"/>
    </s:url>
    <a href="${viewStaff}"><s:text name="label_view"/></a>&nbsp;         
    <s:url action="staffInfo_editStaff" id="modifyStaff">
     <s:param name="sta_id" value="%{#attr.row.sta_id}" />
    </s:url>
    <a href="${modifyStaff}"><s:text name="label_modify"/></a>&nbsp;    
    <s:url action="staffInfo_delStaff" id="delStaff">
     <s:param name="sta_id" value="%{#attr.row.sta_id}" />
    </s:url>
    <a href="${delStaff}"><s:text name="label_delete"/></a>
   </display:column>
   <display:setProperty name="export.csv.filename" value="StaffInfo.csv"/>
   <display:setProperty name="export.excel.filename" value="StaffInfo.xls"/>
  </display:table>    
 </div>

 

想要加連結也很簡單,如下所示:

 <div style="margin-bottom:10px;">
  <s:url action="staffInfo_toAddStaff" id="addStaffUrl">
   <s:param name="tmp"><%=System.currentTimeMillis()%></s:param>
  </s:url>
  <a href="${addStaffUrl}"><s:text name="staff_add"/></a>  
 </div>

 

下面總結幾個display最常用的功能,更多功能請參考:http://www.displaytag.org.index.jsp

1.分頁

   pagesize=“每頁顯示行數”

2.對列排序

   headerClass="sortable"

   如果table有分頁,display tag 預設只對當前頁排序,如想對整個list排序,可在display:tablezhijia

   之間新增一段程式碼:<display:setProperty name ="sort.amount" value="list">

3.匯出資料

   export="true",display tag預設會提供三種資料匯出方式:csv,excel,xml

   另外,display tag還可以匯出為PDF格式,下一個輔助包iText.jar,copy到lib目錄下,然後

   <display:setProperty name="export.pdf" value="true">

4.display tag的屬性設定(displaytag.properties)

basic.empty.showtable=false設定當資料為空時,是不是顯示錶格

basic.show.header=true資料為空時,是否顯示錶頭

# page | list  設定排序的資料量
sort.amount=page

export.amount=list
export.decorated=true

paging.banner.group_size=8
paging.banner.placement=top


css.tr.even=even
css.tr.odd=odd
css.th.sorted=sorted
css.th.ascending=order1
css.th.descending=order2
css.table=
css.th.sortable=sortable

# factory classes for extensions
factory.requestHelper=org.displaytag.util.DefaultRequestHelperFactory

# factory class for decorators
factory.decorator=org.displaytag.decorator.DefaultDecoratorFactory

# locale provider (Jstl provider by default)
locale.provider=org.displaytag.localization.I18nJstlAdapter

# locale.resolver (nothing by default, simply use locale from request)
#locale.resolver=

export.types=csv excel xml pdf

export.csv.class=org.displaytag.export.CsvView
export.excel.class=org.displaytag.export.ExcelView
export.xml.class=org.displaytag.export.XmlView
export.pdf.class=org.displaytag.export.PdfView

export.csv=true
export.csv.label=<span class="export csv">CSV </span>
export.csv.include_header=false
export.csv.filename=

export.excel=true
export.excel.label=<span class="export excel">Excel </span>
export.excel.include_header=true
export.excel.filename=

export.xml=true
export.xml.label=<span class="export xml">XML </span>
export.xml.filename=

export.pdf=false
export.pdf.label=<span class="export pdf">PDF </span>
export.pdf.include_header=true
export.pdf.filename=

export.rtf=false
export.rtf.label=<span class="export rtf">RTF </span>
export.rtf.include_header=true
export.rtf.filename=

# messages    (以下為分頁的CSS定義)

basic.msg.empty_list=\u6CA1\u6709\u53EF\u663E\u793A\u7684\u8BB0\u5F55\u5B58\u5728.
basic.msg.empty_list_row=<tr class\="empty"><td colspan\="{0}">\u6CA1\u6709\u53EF\u663E\u793A\u7684\u8BB0\u5F55\u5B58\u5728.</td></tr>
error.msg.invalid_page=invalid page

export.banner=<div class\="exportlinks">\u5BFC\u51FA\u65B9\u5F0F\: {0}</div>
export.banner.sepchar= |

paging.banner.item_name=item
paging.banner.items_name=items

paging.banner.no_items_found=<span class\="pagebanner">\u6CA1\u6709\u8BB0\u5F55\u5B58\u5728.</span>
paging.banner.one_item_found=<span class\="pagebanner">\u5171\u627E\u52301\u6761\u8BB0\u5F55.</span>
paging.banner.all_items_found=<span class\="pagebanner">\u5171\u627E\u5230{0}\u6761\u8BB0\u5F55, \u663E\u793A\u6240\u6709\u8BB0\u5F55.</span>
paging.banner.some_items_found=<span class\="pagebanner">\u5171\u627E\u5230{0}\u6761\u8BB0\u5F55, \u663E\u793A {2} \u5230 {3}.</span>

paging.banner.full=<span class\="pagelinks">[<a href\="{1}">\u9996\u9875</a>/<a href\="{2}">\u4E0A\u4E00\u9875</a>] {0} [<a href\="{3}">\u4E0B\u4E00\u9875</a>/<a href\="{4}">\u672B\u9875</a>]</span>
paging.banner.first=<span class\="pagelinks">[\u9996\u9875/\u4E0A\u4E00\u9875] {0} [<a href\="{3}">\u4E0B\u4E00\u9875</a>/<a href\="{4}">\u672B\u9875</a>]</span>
paging.banner.last=<span class\="pagelinks">[<a href\="{1}">\u9996\u9875</a>/<a href\="{2}">\u4E0A\u4E00\u9875</a>] {0} [\u4E0B\u4E00\u9875/\u672B\u9875]</span>
paging.banner.onepage=<span class="pagelinks">{0}</span>

paging.banner.page.selected=<strong>{0}</strong>
paging.banner.page.link=<a href="{1}" title="Go to page {0}">{0}</a>
paging.banner.page.separator=,
pagination.sort.param=sort
pagination.sortdirection.param=dir
pagination.pagenumber.param=page
pagination.searchid.param=searchid
pagination.sort.asc.value=asc
pagination.sort.desc.value=desc
pagination.sort.skippagenumber=true

# unused
save.excel.banner=<a href="{0}" rel="external">save ({1} bytes)</a>
save.excel.filename=export.xls