Java Web - Use Struts 2 UI Tags to create form

最近導入struts 2.0 framework,在撰寫一個表單時是使用UI tag去建置,由於網頁前端的JSP檔

打算消除之前有寫的scriptlet Java code,因此搭配使用UI tag就可以消除這個部分,tag程式

如下:

<s:form action="register_add" method="post">
   <s:textfield label="*Account" name="account" required="true" size="25" />
   <s:password label="*Password" name="password" required="true" size="25" />
   <s:password label="*Re-Password" name="repwd" required="true" size="25" />
   <s:radio label="*Sex" list="sexMap" name="sex" required="true" value="%{sex}" />
   <s:select headerkey="" headervalue="Select Age" label="*Age" list="ageMap" name="age" required="true" value="%{age}" />
   <s:textarea cols="20" label="Signature" name="signature" rows="5" />
   <s:submit value="submit" />
</s:form>

網頁畫面如下:

這邊主要說明的是,我們在利用標籤建置UI時,假如我們要帶入Age下的option選項,可以

在action的Java code內建立一個Map,先行存放這些項目,到時在建立select時設定list="ageMap"

即可,ageMap為Action宣告的變數,需要define Getter and Setter method,而要注意的是

value="%{age}"表示當您載入這個頁面時預設要selected的項目之屬性設定!!

當第一次載入時,由於age尚未選取因此選項會停在headervalue="Select Age"的部分,當第一次

送出表單時,假設因為check account已經建立過了而返回,也因為帶回age的值導致重現剛剛

選取的畫面選項。


這邊還要注意的是,由於select的required="true",故若要透過Tag自動幫我們檢查select是否有

選取項目可將headerkey設為"",否則會視為有選擇了。


就目前我用到的UI Tag關於select使用上會有比較多需注意的部分! 在此特別紀錄一下囉!

留言