在struts2中有着一套像html同樣的標籤,俗稱struts2標籤,大多數公司使用ssh都是使用html標籤,但爲了保持項目的統一性,有的公司仍是使用的struts2的標籤,下面是一些經常使用的struts2標籤:javascript
a css
a標籤建立一個HTML超連接,等價於HTML 的<a href=""....html
示範代碼:java
<s:a href="login.action">登錄</s:a>node
action ajax
使用action標籤 能夠容許在JSP頁面中直接調用Action。app
範例以下:ssh
<s: action name="tag2" executeResult="false" />異步
actionerror jsp
這個標籤負責輸出錯誤信息到客戶端。
示範代碼:
Action代碼以下:
public String execute()
{
addActionError("第一條錯誤消息!");
addActionError("第二條錯誤消息!");
return SUCCESS;
}....
JSP中:<s:actionerror/>
actionmessage
這個標籤負責輸出提示信息到客戶端,例子以下:
Action代碼以下:
public String execute()
{
addActionMessage("第一條普通消息!");
addActionMessage("第二條普通消息!");
return SUCCESS;
}
JSP:<s:actionmessage />
append
用來作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
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
checkbox標籤輸出一個HTML複選框,等價於HTML代碼:<input type="checkbox" .../>。
示範代碼:
<s:checkbox label="性別" name="user.sex" value="true" fieldValue="dddd"/>
checkboxlist
標籤輸出一個複選框。
示範代碼:
<s:form>
<s:checkboxlist name="interest" list="{'足球','籃球','排球','游泳'}" label="興趣愛好"/>
</s:form>
combobox
<select id="inservicemajor" name="talent.inservicemajor"></select>
combobox標籤生成一個單行文本框和下拉列表框的結合。
示範代碼:
<s:combobox label="請選擇您喜歡的圖書" theme="css_xhtml" labelposition="top"
list="{'Spring2.0' , 'J2EE' , 'Ajax'}"
size="20" maxlength="20" name="book"/>
conponent
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
date標籤 用於格式化輸入一個日期,還能夠計算指定日期和當前時刻之間的時差。
示範代碼:
<s:date name="#attr.now" format="dd/MM/yyyy" nice=「true」/>
datetimepicker
datetimepicker標籤就是生成一個有日期控件的文本輸入框。它有一個前提就是要在<head></head>內加一個"<s:head theme="ajax" />",而後能夠在form內加上該標籤。
示範代碼:
<s:datetimepicker name="user.birthday" label="出生日期" value="%{'2008-9-20'}"/>
debug
debug標籤主要用於輔助測試,它在頁面上生成一個超連接,經過該連接能夠查看ValueStack和Stack Context 中的全部值信息。
使用debug標籤只有一個id屬性,這個屬性僅僅是該元素一個引用id。
在頁面上增長<s:debug/>標籤,經過debug標籤,能夠看的系統中ValueStack離得所有信息,並能夠看到Stack Context中的屬性。
示範代碼:
<s:debug></s:debug>
//直接在jsp頁面上面添加這樣的標籤,就能夠生產一個查看debug信息的連接
div
div是struts2 ajax中最基礎的標籤,其餘的標籤均和div有關係。div的最大的用途就是能夠異步的更新div中的內容。這裏寫一些div基本的應用,其餘的等寫別的標籤的時候再寫。
示範代碼:
<s:div href="%{url}">Initial Content</sx:div>
<!--最簡單的例子,從指定的url獲取信息更新本身的內容-->
doubleselect
doubleselect標籤輸出關聯的兩個HTML列表框,產生聯動效果。
<s:doubleselect
label="請選擇所在省市" name="province" list="provinces" listKey="id"
listValue="name" doubleList="cities"
doubleListKey="id" doubleListValue="name"
doubleName="city" headerKey="-1"
headerValue="--- 請選擇 ---"
emptyOption="true" />
else
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
elseif標籤用來控制基本的條件處理流程,一般和if標籤連用。
例子
<s:if test="%{false}">
...</s:if>
<s:elseif test="%{true}">
<div>Will Be Executed</div>
</s:elseif>
<s:else>
...</s:else>
fielderror
fielderror標籤輸出action的fieldErrors屬性保存的字段錯誤,fieldErrors是一個map類型的屬性。
示範代碼:
<s:fielderror/>
file
file標籤輸出一個HTML文件選擇框,等價於html代碼:<input type="file" .../>。
示範代碼:
<s:file name="uploadfile" accept="text/*" />
<s:file name="uploadfile" accept="text/html,text/plain" />
form
form標籤輸出一個HTML from
例子:
<s:form action="exampleSubmit" method="post" enctype="multipart/form-data">
<s:submit />
<s:reset />
</s:form>
能夠上傳文件的form。
generator
使用generator標籤能夠將指定字符串按指定分隔符分紅多個子串,臨時生成的多個子串可使用iterator標籤來迭代輸出。能夠這樣理 解:generator將一個字符串轉化成一個集合。在該標籤的標籤體內,整個臨時生成的集合將位於ValueStack的頂端,蛋一旦該標籤結束,該集 合將被移出ValueStack。
head
head標籤主要用於成生HTML主要頁面的HEAD部分。國爲有些主題須要包含特定的CSS和javascript代碼,而該標籤則用於生成對這此CSS和javaScript代碼的引用。
示範代碼:
<head>
<title>page 1</title>
<s:head/>
</head>
hidden
hidden標籤輸出一個HTML隱藏表單元素,等價於HTML代碼:<input type="hidden" .../>。
在xhtml主題下,hidden標籤與其餘的標籤不同,hidden標籤並不輸出表行。xhtml主題直接從simple主題繼承了
hidden.ftl模板。
示範代碼:
<s:hidden name="id" value="s"/>
i18n
該標籤用於加載資源包到值堆棧。它能夠容許text標誌訪問任何資源包的信息,而不僅當前action相關聯的資源包。
示範代碼:
<s:i18n name="ApplicationMessages">
<s:text name="HelloWorld" />
</s:i18n>
if
If標籤用來控制基本的條件處理流程,一般和else標籤或者elseif標籤連用。
例子:
<s:if test="%{false}">
<div>Will Not Be Executed</div>
</s:if>
include
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>
inputtransferselect
獲取form的一個輸入
iterator
迭代處理一個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>
label
xhtml主題下的label 標籤輸出兩個 HTML的label標籤(simple主題下的label標籤只輸出一個HTML label標籤)。分別位於一行的兩列,左列的label標籤器提示做用,右列的label標籤用於顯示只讀的action屬性數據。
示範代碼:
<s:label label="用戶名" name="user.username"/>
merge
合併遍歷集合出來的值,與<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
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>
optiontransferselect
optiontransferselect標籤建立一個選項轉移列表組建,它由兩個<select>標籤以及它們之間的用於將選項在兩個<select>之間相互移動的按鈕組成。表單提交時,將提交兩個列表框中選中的選項。
示範代碼:
<s:optiontransferselect
label="最喜好的圖書"
name="javaBook"
list="{'《Java Web開發詳解》', '《Struts 2深刻詳解》', '《Java快速入門》'}"
doubleName="cBook"
doubleList="{'《VC++深刻詳解》', '《C++ Primer》', '《C++程序設計語言》'}"/>
param
param標籤 主要用於爲其餘標籤提供參數
用法:
<param name="color" value="blue" />
這裏color參數的值是,blue對象的值----若是blue對象不存在,則color爲null。
password
<s:password>標籤類同於HTML的<input type=」password」 …>,其name和label類同於<s:textfield>
例子:
<s:password name="password" label="密碼"/>
property
property標籤用於輸出值棧中的對象的屬性值,使用value屬性來指定要輸出的對象屬性,若是沒有指定value屬性,那麼默認輸出棧頂對象。
例子:
<s:property value="username" default="遊客"/>
取出棧頂對象(一般是action)的username 屬性並輸出,若是沒有找到username屬性,那麼輸出「遊客」。
push
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
radio標籤的用法與checkboxlist的用法幾乎徹底相同,同樣能夠指定label, list, listKey, listValue等屬性。
示範代碼:
<s:radio name="c" label="請選擇您喜歡的圖書" labelposition="top"
list="#bs.books"
listKey="author"
listValue="name"/>
reset
reset標籤輸出一個重置按鈕。
示範代碼:
<s:reset value="重置"></s:reset>
<s:reset type="button" label="重置"></s:reset>
select
s:select 標籤輸出一個下拉列表框,至關於HTML代碼中的<select/>
示範代碼:
<s:form>
<s:select label="最高學歷" name="education" list="{'高中','大學','碩士','博士'}"/>
</s:form>
set
set標籤是將某個值放到指定範圍內, 好比說 student.teacher.parent.age 每次訪問這個屬性不只性能低,並且代碼可讀性不好,爲了解決這個問題,能夠將這個值設置爲一個新值,而且放入指定範圍內。
使用示範:
<s:set value="#p" name="test"/>
<s:property value="#test.name"/> <br>
<s:property value="#test.age"/> <br>
sort
對一個能夠迭代的對象進行排序操做。
<s:sort comparator="myComparator" source="myList">
<s:iterator>
<!-- do something with each sorted elements -->
<s:property value="..." />
</s:iterator>
</s:sort>
submit
Submit標籤輸出一個按鈕,submit標籤和form標籤使用能夠提供異步表單提交功能。Submit標籤能夠輸出如下三種類型的提交按鈕:
Input: 等價於 HTML代碼<input type=」submit」>
Image: 等價於 HTML代碼 <input type="image">
Button:<button type="submit"></button>
示範代碼:
<s:submit value="登錄"></s:submit>
subset
遞歸iterator的一部分。
例子:
<s:subset source="myList">
<s:iterator>
<s:property />
</s:iterator>
</s:subset>
tabbedPanel
<s:tabbedPanel>標籤,用來在HTML頁面中生成相似於Windows程序的Tab頁,從而能夠在有限的空間中放置更多的內容。tabbedPanel標籤生成的Tab頁的內容能夠是靜態的,也能夠是動態的。
示範代碼:
<s:tabbedPanel id="tp1" closeButton="pane" theme="ajax" doLayout="true" selectedTab="second" labelposition="left">
<s:div id="first" label="第一個div" theme="ajax">
靜態的DIV
</s:div>
<s:div name="second" label="第二個div" theme="ajax" href="%{T}" updateFreq="6000" delay="3000">
3:每六秒鐘刷新一次,但有三秒延遲
</s:div>
</s:tabbedPanel>
text
用於輸出國際化消息,和i18n結合使用。
示範代碼:
<s:i18n name="ApplicationMessages">
<s:text name="HelloWorld" />
</s:i18n>
textarea
Textarea標籤輸出一個HTML多行文本輸入控件,等價於HTML代碼:<textarea />
示範代碼:
<s:textarea name="personal" cols="10" rows="5" label="我的簡歷"></s:textarea>
textfield
Textfield標籤輸出一個HTML單行文本輸入控件,等價於HTML代碼<input type="text">
示範代碼:
<s:form action="register" method="post">
<s:textfield name="username" label="用戶名"></s:textfield>
</s:form>
token
token標籤是用於防止屢次提交的標籤。避免了刷新頁面時屢次提交,若是須要該標籤起做用,則應該在Struts2的配置文件中啓用TokenInterceptor攔截器或TokenSessionStoreInterceptor攔截器。
示範代碼:
<s:form>
<s:token/>
</s:form>
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>
treenode
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>
updownselect
updownselect標籤建立一個帶有上下移動的按鈕的列表框,能夠經過上下移動按鈕來調整列表框的選項的位置。
示範代碼:
<s:updownselect name="a" label="請選擇您喜歡的圖書" labelposition="top"
moveUpLabel="向上移動"
list="{'Spring2.0寶典' , '輕量級J2EE企業應用實戰' , 'JavaScript: The Definitive Guide'}"/>
url
url標籤 用於生成一個URL地址,能夠經過param向url標籤指定參數,從而指定URL發送請求參數。
示範代碼:
指定action屬性,且使用param傳入參數的形式 <s:url action="showbook"> <s:param name="author" value="'yeeku'"> </s:url>