a標籤建立一個HTML超連接,等價於HTML 的<a href=""....javascript
示範代碼:css
<s:a href="login.action">登錄</s:a>html
更多 a 信息java
使用action標籤 能夠容許在JSP頁面中直接調用Action。node
範例以下:web
<s: action name="tag2" executeResult="false" />ajax
更多 action 信息app
這個標籤負責輸出錯誤信息到客戶端。
示範代碼:異步
Action代碼以下:
public String execute()
{
addActionError("第一條錯誤消息!");
addActionError("第二條錯誤消息!"); jsp
return SUCCESS;
}....
JSP中:<s:actionerror/>
Action代碼以下:
public String execute()
{
addActionMessage("第一條普通消息!");
addActionMessage("第二條普通消息!");
return SUCCESS;
}
JSP:<s:actionmessage />
用來作iterator標籤的輔助,將不一樣iterator中的內容合在一個iterator中。
例子:
<s:append id="myAppendIterator">
<s:param value="%{myList1}" />
<s:param value="%{myList2}" />
<s:param value="%{myList3}" />
</s:append>
<s:iterator value="%{#myAppendIterator}">
<s:property />
</s:iterator>
bean標籤 用於建立一個JavaBean的實例。
示範樣例:
<s:bean name="lee.Person" id=「p」>
<!--使用Param標籤爲lee。Person類的實例傳入參數-->
<s:param name="name" value="'yeeku'"/>
<s:param name="age" value="29"/>
</s:bean>
checkbox標籤輸出一個HTML複選框,等價於HTML代碼:<input type="checkbox" .../>。
示範代碼:
<s:checkbox label="性別" name="user.sex" value="true" fieldValue="dddd"/>
標籤輸出一個複選框。
示範代碼:
<s:form>
<s:checkboxlist name="interest" list="{'足球','籃球','排球','游泳'}" label="興趣愛好"/>
</s:form>
combobox標籤生成一個單行文本框和下拉列表框的結合。
示範代碼:
<s:combobox label="請選擇您喜歡的圖書" theme="css_xhtml" labelposition="top"
list="{'Spring2.0' , 'J2EE' , 'Ajax'}"
size="20" maxlength="20" name="book"/>
conponent標籤用於使用自定義標籤。由於使用自定義組件仍是基於主題,模板管理的,所以在使用component標籤,經常須要指定以下3個屬性:
theme:自定義組件所使用的主題,默認使用xhtml主題。
templateDir:指定自定義組件的主題目錄,默認使用系統的主題目錄,即template目錄。
template:指定自定義組件所使用的模板。
示範代碼:
<s:component template="mytemplate.jsp">
<s:param name="list" value="{'Spring2.0' , 'J2EE' , 'Ajax'}" />
</s:component>
date標籤 用於格式化輸入一個日期,還能夠計算指定日期和當前時刻之間的時差。
示範代碼:
<s:date name="#attr.now" format="dd/MM/yyyy" nice=「true」/>
datetimepicker標籤就是生成一個有日期控件的文本輸入框。它有一個前提就是要在<head></head>內加一個"<s:head theme="ajax" />",而後能夠在form內加上該標籤。
示範代碼:
<s:datetimepicker name="user.birthday" label="出生日期" value="%{'2008-9-20'}"/>
debug標籤主要用於輔助測試,它在頁面上生成一個超連接,經過該連接能夠查看ValueStack和Stack Context 中的全部值信息。
使用debug標籤只有一個id屬性,這個屬性僅僅是該元素一個引用id。
在頁面上增長<s:debug/>標籤,經過debug標籤,能夠看的系統中ValueStack離得所有信息,並能夠看到Stack Context中的屬性。
<s:debug></s:debug>
//直接在jsp頁面上面添加這樣的標籤,就能夠生產一個查看debug信息的連接
else標籤用來控制基本的條件處理流程,一般和if、elseif標籤連用。
例子
<s:if test="%{false}">
<div>Will Not Be Executed</div>
</s:if>
<s:elseif test="%{true}">
<div>Will Be Executed</div>
</s:elseif>
<s:else>
<div>Will Not Be Executed</div>
</s:else>
elseif標籤用來控制基本的條件處理流程,一般和if標籤連用。
例子
<s:if test="%{false}">
...</s:if>
<s:elseif test="%{true}">
<div>Will Be Executed</div>
</s:elseif>
<s:else>
...</s:else>
fielderror標籤輸出action的fieldErrors屬性保存的字段錯誤,fieldErrors是一個map類型的屬性。
示範代碼:
<s:fielderror/>
file標籤輸出一個HTML文件選擇框,等價於html代碼:<input type="file" .../>。
示範代碼:
<s:file name="uploadfile" accept="text/*" />
<s:file name="uploadfile" accept="text/html,text/plain" />
例子:
<s:form action="exampleSubmit" method="post" enctype="multipart/form-data">
<s:submit />
<s:reset />
</s:form>
能夠上傳文件的form。
使用generator標籤能夠將指定字符串按指定分隔符分紅多個子串,臨時生成的多個子串可使用iterator標籤來迭代輸出。能夠這樣理解:generator將一個字符串轉化成一個集合。在該標籤的標籤體內,整個臨時生成的集合將位於ValueStack的頂端,蛋一旦該標籤結束,該集合將被移出ValueStack。
head標籤主要用於成生HTML主要頁面的HEAD部分。國爲有些主題須要包含特定的CSS和javascript代碼,而該標籤則用於生成對這此CSS和javaScript代碼的引用。
示範代碼:
<head>
<title>page 1</title>
<s:head/>
</head>
hidden標籤輸出一個HTML隱藏表單元素,等價於HTML代碼:<input type="hidden" .../>。
在xhtml主題下,hidden標籤與其餘的標籤不同,hidden標籤並不輸出表行。xhtml主題直接從simple主題繼承了
hidden.ftl模板。
示範代碼:
<s:hidden name="id" value="s"/>
該標籤用於加載資源包到值堆棧。它能夠容許text標誌訪問任何資源包的信息,而不僅當前action相關聯的資源包。
示範代碼:
<s:i18n name="ApplicationMessages">
<s:text name="HelloWorld" />
</s:i18n>
If標籤用來控制基本的條件處理流程,一般和else標籤或者elseif標籤連用。
例子:
<s:if test="%{false}">
<div>Will Not Be Executed</div>
</s:if>
include標籤 用於將一個JSP頁面,或者一個Servlet包含到本頁面中。
示範代碼:
<h2>使用s:include標籤來包含目標頁面</h2>
<s:include value="include-file.jsp"/>
<!--使用include標籤來包含其餘頁面,而且傳入參數-->
<s:include value="include-file.jsp">
<s:param name="author" value="'yeeku'" />
</s:include>
迭代處理一個java.util.Connection或者java.util.Iterator對象
例子:
<s:iterator value="users" status="userStatus">
<s:property value="fullName" />
<s:if test="!#userStatus.last">,</s:if>
</s:iterator>
xhtml主題下的label 標籤輸出兩個 HTML的label標籤(simple主題下的label標籤只輸出一個HTML label標籤)。分別位於一行的兩列,左列的label標籤器提示做用,右列的label標籤用於顯示只讀的action屬性數據。
示範代碼:
<s:label label="用戶名" name="user.username"/>
合併遍歷集合出來的值,與<s:append>標籤用法類似。
例子:
<s:merge id="list">
<s:param value="#request.list1"/>
<s:param value="#request.list2"/>
<s:param value="#request.list3"/>
<s:param value="#request.list4"/>
</s:merge>
<s:iterator value="%{list}">
<s:property/><br>
</s:iterator>
optgroup標籤用於生成一個下拉列表框的選項組,所以,該標籤必須放在<s:select>標籤中使用,一個下拉列表框中能夠包含多個選項組,所以能夠在一個<s:select>標籤中使用多個<s:optgroup>標籤。
<s:select label="選擇您喜歡的圖書" name="book" list="#{'Spring2.0':'李剛','J2EE':'李','Ajax寶典':'李'}"
listKey="value" listValue="key">
<s:optgroup label="Rod Johnson"
list="#{'Expert One-on-One J2EE Design and Development':'Johnson'}"
listKey="value"
listValue="key"/>
<s:optgroup label="David Flanagan"
list="#{'JavaScript: The Definitive Guide':'David'}"
listKey="value"
listValue="key"/>
</s:select>
param標籤 主要用於爲其餘標籤提供參數
用法:
<param name="color" value="blue" />
這裏color參數的值是,blue對象的值----若是blue對象不存在,則color爲null。
<s:password>標籤類同於HTML的<input type=」password」 …>,其name和label類同於<s:textfield>
例子:
例子:
<s:property value="username" default="遊客"/>
取出棧頂對象(一般是action)的username 屬性並輸出,若是沒有找到username屬性,那麼輸出「遊客」。
push標籤用於將某個值放到ValueStack的棧頂,能夠跟簡單的訪問該值。
示範樣例:
<s:bean name="lee.Person" id="p">
<s:param name="age" value="29"/>
</s:bean>
<s:push value="#p">
<s:property value="name"/>
<s:propery value="age"/>
</s:push>
radio標籤的用法與checkboxlist的用法幾乎徹底相同,同樣能夠指定label, list, listKey, listValue等屬性。
示範代碼:
<s:radio name="c" label="請選擇您喜歡的圖書" labelposition="top"
list="#bs.books"
listKey="author"
listValue="name"/>
<s:reset type="button" label="重置"></s:reset>
s:select 標籤輸出一個下拉列表框,至關於HTML代碼中的<select/>
示範代碼:
<s:form>
<s:select label="最高學歷" name="education" list="{'高中','大學','碩士','博士'}"/>
</s:form>
set標籤是將某個值放到指定範圍內, 好比說 student.teacher.parent.age 每次訪問這個屬性不只性能低,並且代碼可讀性不好,爲了解決這個問題,能夠將這個值設置爲一個新值,而且放入指定範圍內。
使用示範:
<s:set value="#p" name="test"/>
<s:property value="#test.name"/> <br>
<s:property value="#test.age"/> <br>
對一個能夠迭代的對象進行排序操做。
<s:sort comparator="myComparator" source="myList">
<s:iterator>
<!-- do something with each sorted elements -->
<s:property value="..." />
</s:iterator>
</s:sort>
遞歸iterator的一部分。
例子:
<s:subset source="myList">
<s:iterator>
<s:property />
</s:iterator>
</s:subset>
示範代碼:
<s:i18n name="ApplicationMessages">
<s:text name="HelloWorld" />
</s:i18n>
Textfield標籤輸出一個HTML單行文本輸入控件,等價於HTML代碼<input type="text">
示範代碼:
<s:form action="register" method="post">
<s:textfield name="username" label="用戶名"></s:textfield>
</s:form>
token標籤是用於防止屢次提交的標籤。避免了刷新頁面時屢次提交,若是須要該標籤起做用,則應該在Struts2的配置文件中啓用TokenInterceptor攔截器或TokenSessionStoreInterceptor攔截器。
示範代碼:
<s:form>
<s:token/>
</s:form>
tree和treenode標籤能夠在頁面生成一個樹形結構,其中tree生成一個樹形結構,treenode生成一個樹節點。
示範代碼:
<s:tree label="圖書" id="book" theme="ajax"
showRootGrid="true" showGrid="true" treeSelectedTopic="treeSelected">
<s:treenode theme="ajax" label="David" id="David">
<s:treenode theme="ajax" label="JavaScript: The Definitive Guide" id="javascript"/>
</s:treenode>
</s:tree>
tree和treenode標籤能夠在頁面生成一個樹形結構,其中tree生成一個樹形結構,treenode生成一個樹節點。
示範代碼:
<s:tree label="圖書" id="book" theme="ajax"
showRootGrid="true" showGrid="true" treeSelectedTopic="treeSelected">
<s:treenode theme="ajax" label="David" id="David">
<s:treenode theme="ajax" label="JavaScript: The Definitive Guide" id="javascript"/>
</s:treenode>
</s:tree>
示範代碼:
指定action屬性,且使用param傳入參數的形式
<s:url action="showbook">
<s:param name="author" value="'yeeku'">
</s:url>