1. 使用Struts2的常用邏輯标簽
1.1 property标簽
- 功能說明
擷取對象的屬性值,目标對象預設位于ValueStack棧頂
- 标簽屬性
名稱 | 必選 | 類型 | 說明 |
---|---|---|---|
value | no | Object | 對象的屬性名稱, 預設直接輸出 ValueStack 棧頂對象 |
default | String | 預設值,如果 value 為 null 則輸出此值 | |
escape | Boolean | 是否進行html 轉義,預設為 true | |
escapeJavaScript | 是否進行JavaScript 轉義,預設為 false |
eg:
<s:property value="user.userName"/>
1.2 if-elseif-else标簽
功能說明:
替代Java文法中的if/else
标簽屬性:
test | yes | 表達式,決定是否顯示if/else if 标簽體的内容 |
歡迎${user.name} ,
<s:if test="user.role == 'admin'">系統管理者</s:if>
<s:elseif test="user.role == 'member'">會員</s:elseif>
<s:else>遊客</s:else>
1.3 iterator标簽
替代Java語言中foreach的功能
類型 類型 | |||
---|---|---|---|
true | 被疊代的對象 | ||
status | 疊代狀态,IteratorStatus對象 |
PS:不需要寫 status 的就會自動疊代,比如customers 這個集合,疊代的時候,直接寫value =name 就是 customer 的name了
<s:iterator value="products">
<s:property value="name"/>,<s:property value="price"/>
<br />
</s:iterator>
2. 使用Struts2的常用UI标簽
2.1 簡單表單标簽
Struts2 Form UI Tag | html tag | |
---|---|---|
textfield | input type="text" | 文本輸入框 |
password | input type="password" | 密碼輸入框 |
textarea | 多行文本輸入框 | |
hidden | input type="hidden" | 隐藏域 |
file | input type = "file" | 檔案輸入框 |
submit | input type="submit" | 送出按鈕 |
reset | input type ="reset" | 重置按鈕 |
checkbox | input type="checkbox" | 複選框 |
2.2 select标簽
功能說明:自帶回顯功能
生成select标簽(含option)
list | 集合 | 指定option清單項 |
listKey | 如果list元素是複合對象,指定 option value 對象屬性 | |
listValue | 如果list 元素是複合對象,指定option text 對應屬性 | |
emptyOption | 是否添加空option | |
multiple | 是否允許多選 | |
headerKey | 設定第一選項對應的 option value 對象屬性 | |
headerValue | 設定第一選項對應的 option text 對象屬性 |
PS:複合對象的意思是如果是集合會自動疊代。
eg : 集合
List<custoemr> customers
的下拉清單标簽的使用
<s:select list="customers" name="customer.custId"
listKey="custId" listValue="custName"
headerKey="" headerValue="===請選擇==="
style="WIDTH: 180px">
</s:select>
2.3 checkboxlist标簽
功能說明: 自帶回顯功能
生成一組checkbox
如果list 元素是複合對象,指定option value 對應屬性 | ||
PS:複合對象的意思是如果是集合會自動疊代
eg:
<s:checkboxlist name="favors" list="products" listKey="id" listValue="name"/>
2.3.1 checkboxlist 和 checkbox 的差別
- checkbox 和 checkboxlist的用法首先需要搞清楚;
checkbox
适用的場景,例如是、否;有、無;符合、不符合;男、女等這樣的語境;
checkboxlist
适用于多個,例如興趣愛好:籃球、足球、乒乓球、玩遊戲、聽音樂等等;
2.4 radio 标簽
功能說明: 自帶回顯功能的,需要給 name 屬性是必須的
生成一組radio
标簽屬性:
name | name 屬性是必須的,自帶回顯,還可以送出選中的值 |
<s:radio name="favorite" list="products" listKey="id" listValue="name"/>
3. 總結
使用struts2 标簽的優缺點:
- 優點
- 自帶回顯功能,提升開發效率
- 簡化代碼
- 缺點
- 隻能用于使用了 struts2 架構的代碼,複用率不高