表(TABLE)由行(TR)組成,行包含多個格(TD),一個格里包含一個或多個元素,怎樣組織這些元素,可以有多種定義方式。我們做如下規定:
a、一個格和內部的元素作爲一個整體,這樣有文本、輸入框、按鈕、列表等;
b、一個格內包含多個元素的類型爲元素組;
c、可以將常用的組合單獨作爲一種類型,如日期(輸入框+圖片)
d、隱含字段(不包含表格)和TR也作爲特殊的類型。
使用方法:
JspDefaultQryTableManager jspDefaultQryTableManager = new JspDefaultQryTableManager(out,request);//建立一個生成類
tableCell = jspDefaultQryTableManager.createTextTableCell("起始監控時間: ");//生成文本
tableCell.setTdPropertyValue("width","13%");//設置表格數據寬度
tableCell.setTdPropertyValue("align","right");//設置表格數據對齊方式
tableCell = jspDefaultQryTableManager.createTableCell("Date_start",Date_start,TableCell.INPUT_TEXT_DATE);
tableCell.setTdPropertyValue("width","20%");//設置表格數據寬度
tableCell.setTdPropertyValue("align","left");//設置表格數據對齊方式
tableCell.setInputTextDate(TableCell.INPUT_TEXT_DATE_FORMAT_DATE);
tableCell = jspDefaultQryTableManager.createTextTableCell("監控方: ");
tableCell.setTdPropertyValue("width","10%");//設置表格數據寬度
tableCell.setTdPropertyValue("align","right");//設置表格數據對齊方式
tableCell = jspDefaultQryTableManager.createTableCell("SendReceive",SendReceive,TableCell.SELECT_OPTION);
tableCell.setTdPropertyValue("width","20%");//設置表格數據寬度
tableCell.setTdPropertyValue("align","center");//設置表格數據對齊方式
tableCell.addSelectOption("","請選擇");//設置列表的選項
tableCell.addSelectOption("1","外網");//設置列表的選項
tableCell.addSelectOption("2","內網");//設置列表的選項
jspDefaultQryTableManager .outHtml();// 輸出數據
函數說明:
/**
* 建立一個TableCell
* @param name 字段名
* @param value 字段值
* @param displayType 顯示類型
* @return TableCell
* @throws java.lang.Exception
*/
public TableCell createTableCell(String name,Object value,int displayType) throws Exception
生成的頁面爲:
<table class="qryTABLE" width="100%">
<tr><td class="qryTD" width="13%" align="right">
起始監控時間: </td>
<td class="qryTD" width="20%" align="left">
<input type="text" name="Date_start" value="20001212" class="qryInputText" size="8" maxlength="8"><img src="/resource/image/calendar.gif" align="absmiddle" οnclick="javascript:setday(this,document.all.Date_start,document.all.Date_start, 'DAY')">
</td>
<td class="qryTD" width="10%" align="right">
監控方: </td>
<td class="qryTD" width="20%" align="center">
<select name="SendReceive" class="qrySelectOption" style="width:100%">
<option value="">請選擇</option>
<option value="1" selected>外網</option>
<option value="2">內網</option>
</select>
</td>
</tr>
</table>
可以看到屬性有一部分是默認的,根據生成類JspDefaultQryTableManager的不同,默認屬性可以不同。
如果僅僅從這個例子看,並沒有明顯的優勢,這個只是一個基礎,它規範了數據,將html編程變成簡化成功能簡單的屬性設置,結構上改進不少,而且功能可以隨着JspDefaultQryTableManager類的提高而提高,程序可以不變,因此以後的維護和遷移將方便很多。