tapestry提供了2種經常使用的數據循環顯示:loop組件與grid組件,二者沒多大區別,loop組件沒有提供分頁,使用比較靈活,gird組件提供了分頁功能,相反本身定義方面沒那麼靈活,但提供了字段排序的功能。此例子寫的比較複雜,由於以前不知道怎麼使用loop組件顯示string[]數組,所以把例子寫下來便於之後查看,其實很簡單的首先要把string[]轉變成List<String>再使用loop組件顯示。源碼以下:html
/**
* 項目名稱:TapestryStart
* 開發模式:Maven+Tapestry5.x+Tapestry-hibernate+Mysql
* 版本:1.0
* 編寫:飛風
* 時間:2012-02-29
*/
package com.tapestry.app.pages;
import java.util.ArrayList;
import java.util.List;
import org.apache.tapestry5.annotations.Property;
public class DataList {
@Property
private String nameOne;
@Property
private String nameTwo;
@Property
private String[] nameOnes;
@Property
private String[] nameTwos;
@Property
private List<String> oneLists;
@Property
private List<String> twoLists;
void setupRender(){
String oneString = "張三/李四/王五/";
nameOnes = oneString.split("/");
oneLists = new ArrayList<String>();
for(String str:nameOnes){
oneLists.add(str);
}
String twoString = "劉備/張飛/關於/";
nameTwos = twoString.split("/");
twoLists = new ArrayList<String>();
for(String str2:nameTwos){
twoLists.add(str2);
}
}
}
<html t:type="layout" title="tapestryStart Index" t:sidebarTitle="Framework Version"
xmlns:t="http://tapestry.apache.org/schema/tapestry_5_3.xsd" xmlns:p="tapestry:parameter">
name<br/>
<t:loop source="oneLists" value="nameOne">
${nameOne}<br/>
</t:loop>
<t:grid source="twoLists" add="name" row="nameTwo">
<p:NameCell>
${nameTwo}<br/>
</p:NameCell>
</t:grid>
</html>
http://localhost/loop/datalist