J2EE中使用Display标记库来展示表格

 

 

用网页展示表格时,如果行数太多,有时候需要把它们分成很多页.而且各行之间使用不同的背景色来方便用户阅读.或者可能还需要排序。虽然实现上面的功能都不难,但是如果使用Display标记库将能够大大简化开发.它模仿google,baidu页面的风格,把许多行的表格分成各个页面,并提供了常用的功能。

  数据模型是很简单的美国总统JavaBean.它有3个简单的String属性。

  Java代码如下:

PagedData.java

importjava.util.ArrayList;
importjava.util.List;

publicclassPagedData{

 privateListlist;

 publicPagedData(){
  list=newArrayList();
  list.add(newPresident("Garfield","James","1881"));
  list.add(newPresident("Arthur","Chester","1881-85"));
  list.add(newPresident("Cleveland","Grover","1885-89"));
  list.add(newPresident("Harrison","Benjamin","1889-93"));
  list.add(newPresident("Cleveland","Grover","1893-97"));
  list.add(newPresident("McKinley","William","1897-1901"));
  list.add(newPresident("Roosevelt","Theodore","1901-09"));
  list.add(newPresident("Taft","WilliamH.","1909-13"));
  list.add(newPresident("Wilson","Woodrow","1913-21"));
  list.add(newPresident("Jackson","Andrew","1829-37"));
  list.add(newPresident("Harding","Warren","1921-23"));
  list.add(newPresident("Coolidge","Calvin","1923-29"));
  list.add(newPresident("Hoover","Herbert","1929-33"));
  list.add(newPresident("Roosevelt","FranklinD.","1933-45"));
  list.add(newPresident("Truman","Harry","1945-53"));
  list.add(newPresident("Eisenhower","Dwight","1953-61"));
  list.add(newPresident("Kennedy","JohnF.","1961-63"));
  list.add(newPresident("Johnson","Lyndon","1963-69"));
  list.add(newPresident("Nixon","Richard","1969-74"));
  list.add(newPresident("Ford","Gerald","1974-77"));
  list.add(newPresident("Carter","Jimmy","1977-81"));
  list.add(newPresident("Reagan","Ronald","1981-89"));
  list.add(newPresident("Bush","GeorgeH.W.","1989-93"));
  list.add(newPresident("Clinton","WilliamJ.","1993-2001"));
  list.add(newPresident("Bush","GeorgeW.","2001-present"));
  list.add(newPresident("Washington","George","1789-97"));
  list.add(newPresident("Adams","John","1797-1801"));
  list.add(newPresident("Jefferson","Thomas","1801-09"));
  list.add(newPresident("Madison","James","1809-17"));
  list.add(newPresident("Monroe","James","1817-25"));
  list.add(newPresident("Jackson","Andrew","1829-37"));
  list.add(newPresident("VanBuren","Martin","1837-41"));
  list.add(newPresident("Harrison","WilliamHenry","1841"));
  list.add(newPresident("Tyler","John","1841-45"));
  list.add(newPresident("Polk","James","1845-49"));
  list.add(newPresident("Taylor","Zachary","1849-50"));
  list.add(newPresident("Fillmore","Millard","1850-53"));
  list.add(newPresident("Pierce","Franklin","1853-57"));
  list.add(newPresident("Buchanan","James","1857"));
  list.add(newPresident("Lincoln","Abraham","1861-65"));
list.add(newPresident("Johnson","Andrew","1865-69"));
  list.add(newPresident("Grant","UlyssesS.","1869-77"));
  list.add(newPresident("Hayes","RutherfordB.","1877-81"));
 }
 publicListgetData(){
  returnlist;
 }
}

President.java

publicclassPresident{
 publicPresident(Stringlname,Stringfname,Stringterm){
  lastName=lname;
  firstName=fname;
  this.term=term;
 }

 publicStringgetFirstName(){
  returnfirstName;
 }
 publicvoidsetFirstName(StringfirstName){
  this.firstName=firstName;
 }
 publicStringgetLastName(){
  returnlastName;
 }
 publicvoidsetLastName(StringlastName){
  this.lastName=lastName;
 }
 publicStringgetTerm(){
  returnterm;
 }
 publicvoidsetTerm(Stringterm){
  this.term=term;
 }

 privateStringlastName;
 privateStringfirstName;
 privateStringterm;
}
  下面的JSP页面是展示表格的,也体现了Display库最常见的用法:

index.jsp

<%@pagecontentType="text/html;charset=UTF-8"language="java"%>
<%@tagliburi="http://displaytag.sf.net/el"prefix="display"%>
<html>
<head>
<title>StrutsCookbook-Chapter4:DisplayTagExample</title>
<style>
.even{background-color:orange;}
.odd{background-color:yellow;}
</style>
</head>
<body>
<h2>DisplayTagExamples</h2>
<jsp:useBeanid="pagedData"class="PagedData"/>
<display:tableid="pres"name="${pagedData.data}"
sort="list"pagesize="10"defaultsort="3">
<display:caption>UnitedStatesPresidents</display:caption>
<display:setPropertyname="basic.show.header"value="true"/>
<display:columnproperty="firstName"title="FirstName"
sortable="true"/>
<display:columnproperty="lastName"title="LastName"
sortable="true"/>
<display:columnproperty="term"title="TermofOffice"
sortable="true"/>
</display:table>
</body>
</html>
  在浏览器里打开页面:

看见了吧,效果确实不错:)

  要使用display标记库,需要在这里下载:

http://displaytag.sourceforge.net

  把display.jar文件放到Web-INF/lib中.

  注意:

  这里用到了EL,所以jstl.jar和standard.jar这两个库需要在lib中.

  Display.jar依赖2.0或以上的JakartaCommonsLang库,commons-lang-2.0.jar和JakartaCommonsCollections库,commons-collections.jar.

  它们分别在:

http://jakarta.apache.org/commons和http://jakarta.apache.org/commons/collections/

  下载,然后把对应的jar文件copy到WEB-INF/lib中.

简单介绍用法,其实也不用我多说,看看jsp文件也就基本懂了.

<display:tableid="pres"name="${pagedData.data}"
sort="list"pagesize="10"defaultsort="3">

id是以后用到时的变量.name是要展现的集合数据.list表示整个list被排序.pagesize表示每页所要展示的数.defaultsort表示最开始是按第几列排序的,注意这里是以1开始计数的.

<display:caption>UnitedStatesPresidents</display:caption>

<display:caption标记中间的字符串是用来放到表格上面的标题.

<display:columnproperty="firstName"title="FirstName"
sortable="true"/>
display:column标记指定了每列的属性.

还要更多的使用方法,见Display标记库的Doc文档.

 

 




 

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值