Struts2標籤庫概述
對於一個MVC框架而言,重點是實現兩部分:業務邏輯控制器部分和視圖頁面部分。Struts2前者通過action來提供支持,而視圖則是由大量的標籤來提供支持。
Struts2標籤庫大致分爲兩類,普通標籤和UI標籤
普通標籤又分爲控制標籤和數據標籤
UI標籤又分爲表單標籤,非表單標籤,Ajax標籤
Struts2標籤的使用
<%@taglib prefix="s" uri="/struts-tags"%>
Struts2的控制標籤
控制標籤用來完成條件循環,邏輯循環的控制,也可以用來做集合的操作
<s:if test="表達式1">分支邏輯控制
標籤體,test必須制定
</s:if>
<s:elseif test="表達式1">
標籤體,test必須指定
</s:elseif>
<s:else>
標籤體
</s:else>
s:iterator> 主要用於對集合中的數據進行迭代
*屬性
begin,類型Integer,迭代數組或者集合的起始位置,默認0
end,類型Integer,迭代數組或者集合的結束位置,默認0
status,類型Boolean,迭代過程中的狀態
st.count 返回當前已經遍歷的集合元素個數
st.first,st.last 返回當前遍歷元素是否爲集合的第一或者最後一個元素
st.index 返回遍歷元素的當前索引值
st.even st.odd,判斷是否爲偶數/奇數
<s:iterator var="name" value="{'Java','Java Web','Oracle','Mysql'}"
<s:if test="#st.odd">
...
數據標籤
s:property
用於輸出特定的值,通常輸出value屬性指定的值
屬性:
id,可選屬性,指定該元素的表示
default,如果要輸出的屬性值爲null,則顯示default屬性指定的值
escape,指定是否忽略HTML代碼
value,指定需要輸出的屬性值,如果沒有正定該屬性,則默認輸出ValueStack棧頂的值
s:a
用於構造HTML頁面中的超鏈接
action 指定超鏈接Action地址
href 超鏈接地址
namespace 指定Action地址
id 指定id
method 指定Action調用方法
s:debug
用於在調試程序時輸出更多的調試信息,主要輸出ValueStack和StackContext中的信息
s:include
用來在當前頁面中包含另一個頁面
s:param
爲其他標籤提供參數
<s:param name="color" value="'red'"></s:param>
<s:param name="color">red</s:param>
Struts2的模式和主題
提供了 simple xhtml css_xhtml Ajax四種主題
使用方法:
struts.xml中添加
<constant name="struts.ui.theme" value="simple"/>
或
struts.properties中添加
struts.ui.theme=simple
表單標籤
s:form
屬性:action,指定提交時對應的action,不需要action後綴
enctype,HTML表單enctype屬性
method,HTML表單method屬性
namespace,所提交action的命名空間
s:submit
屬性:
action
method,指定action中調用的方法
s:textfiled和s:textarea
前者創建單行文本,後者創建多行文本,一般指定label屬性和name屬性
s:password
name
size,指定密碼輸入框的顯示寬度,以字符數爲單位
maxlength,限定密碼輸入框的最大輸入字符串個數
showPassword,是否顯示初始值,及時顯示也仍爲密文顯示
s:radio
創建單選按鈕
屬性:
list,必填項,Cellection,MapEnmumeration,Iterator,array,用於生成單選框中的集合
listKey,String,指定集合對象中哪個屬性作爲選項的value
listValue,指定內容
s:checkbox
用於創建複選框
name
value
label
filedValue,指定真實的value值,會屏蔽value屬性值
s:checkboxlist
用於一次性創建多個複選框
name
list
listKey
listValue
s:select
創建下拉列表框
s:optgroup
生成選項組
s:file
文件選擇框
s:hidden
隱藏表單元素
s:reset
重置按鈕
非標單標籤
s:actionerror
s:actionmessage
s:filederror