How to dynamically evaluate a tag within a java file

logicgate發表於2005-05-23
我想做一個propertyTable的tag,根據一個object的各個attribute的屬性,顯示一個表格,讓使用者輸入相應的資料。這個tag也可以顯示一個已經存在的object的屬性。在客戶端(jsp業面),只需要用

<prefix:propertyTable objectSchemaId="customer"/>

就可以顯示如下的一個表格:
――――――――――――――――――--――――――――――――
| 顧客姓名(String): | 文字輸入框(能輸入文字或數字) |
| 顧客性別(String): | 下拉選擇選單(顯示“男”或“女”) |
| 消費額(Double): | 文字輸入框(只能輸入數字) |
―――――――――――――――――――――――――――――――

object的屬性是在xml裡定義的,在PropertyTableTag的doStartTag()方法中,會先根據objectSchemaId拿到customer這個object所有的attribute,然後根據每個attribute的資料型別,動態的在客戶端顯示不同的輸入框。比如說如果消費額的資料型別時double,客戶端就顯示一個文字輸入框,但只能輸入數字。程式碼如下:

if(attributeSpec.getDataType().equalsIgnoreCase("Doube"))
{
  htmlCode.append("<prefix:myInput name='xxx' dataType='Double'/>");
}
<p class="indent">

其中myInput是我自己寫的tag,會根據dataType的不同顯示不同的input,但實際上執行的時候myInput的tag handler並沒有被呼叫,而是

<prefix:myInput name='xxx' dataType='Double'/>

被直接顯示到客戶端。

So,我的問題就是,怎樣可以在PropertyTableTag中得到myInput所對應的html程式碼?

希望各位能給我一些建議。

相關文章