====================================================================
需要在head中用<s:head />標籤
一、控制標籤:
1 <s:if test=''></s:if>
<s:elseif test=""></s:elseif>
<s:else></s:else>:條件判斷
id:(可選的)
test:(必須的,boolean),決定是否顯示if內的內容
test中可以用in/not in 判斷
------------------------------
2 <s:property />:用於輸出指定值
default:需要輸出的屬性值為null則顯示該預設值(可選)
escape:指定是否格式化HTML程式碼(可選)
value:指定需要輸出的屬性值,如果沒有指定則預設輸出ValueStack棧頂的值(可選)
id:指定該元素的標識(可選)
------------------------------
3 <s:iterator />:用於對集合(List、Set、陣列)進行迭代
value:指定被迭代的集合,若沒有則使用值棧棧頂的集合(可選)
id:當前被迭代的元素
var:
status:指定迭代時的IteratorStatus的例項,其包含如下方法
int getCount():返回當前迭代了幾個元素
int getIndex():返回當前迭代元素的索引
boolean isEven():返回當前被迭代元素的索引是否是偶數
boolean isOdd():返回當前被迭代的元素的索引是否是奇數
boolean isFirst():返回當前被迭代元素是否是第一個元素
boolean isLast():返回當前被迭代元素是否是最後一個元素
#status.even 是否偶數行
#status.odd 是否奇數行
#status.count 當前行數
#status.index 當前行的序號,從0開始[#status.count=#status.index+1]
#status.first 是否第一行
#status.last 是否最後一行
#status.modules(int) 當前行數取模
------------------------------
4 <s:append var="">
<s:param value=""/>
</s:append>
作為iterator的輔助使用,將多個(param標籤表示的)集合合併,
var:表示新生成的集合
------------------------------
5 <s:generator val="%{'aaa,bbb,ccc,ddd,eee'}" count="3" separator=',' var="ge">
<s:iterator><s:property /><br /></s:property>
</s:generator>
可以將指定字串按指定分隔符分隔成多個字串,生成的多個字串可以使用iterator標籤迭代。
(該標籤將一個字串轉換成list集合,在標籤體內,臨時生成的集合在值棧頂端,
標籤結束後集合被移出值棧。)
val:指定被解析的字串
count:可選,指定生成集合的數,若為3,生成的iterator只有val的前三項'aaa,bbb,ccc';(可選)
var:(可選),使用該屬性後,可在後續JSP中通過request.getAttribute()來獲取Iterator
或者OGNL中,#request.ge或者ge來獲取,很多標籤有此可選屬性
separator:(必須)分隔符
convertor:(可選)
------------------------------
6 <s:sort comparator="" source="" >
...
</s:sort>:排序
comparator:必須,指定排序用的比較器
source:可選,需要排序的物件
------------------------------
7 <s:subset>
<s:iteraotr>...
</s:subset>:擷取iterator的一部分(子集),屬性全部為可選
count:擷取的數量
decider:決定是否將該元素選入子集(可實現過濾,寫一個類實現SubsetIteratorFilter.Decider介面中
的boolean decide(Object element)方法,element代表當前判定的元素,如果該方法返回真,
則表明該元素element將被選入子集中),被過濾掉的元素不計入count中,decider的值是上述類
的一個例項物件。
source:集合物件
start:集合中開始的位置
------------------------------
==============================
二、資料標籤
1 <s:action>:可以允許在JSP頁面直接呼叫Action,在呼叫的時候可以指定需要被掉用的Action的
namenamespace;如果指定了executeResult引數的屬性為true,該標籤會把Action的處理結果(就是result
所跳轉的那個頁面的內容)包含到本頁面中。
id:可選,
name:必須的,Action的名字,
namespace:可選,所呼叫的Action的所在的namespace
executeResult:可選,指定是否將處理結果包含到本頁面,預設false不包含
ignoreContextParam:可選,指定該頁面的請求引數是否需要傳入Action中,預設false傳入引數
(ignore是忽視的意思)
------------------------------
2 <s:bean />:依據一個類生成一個javabean物件,可通過param標籤傳遞引數
name:用於生成bean的Java類
var:可選,bean物件名
------------------------------
3 <s:date />:標籤用於格式化日期
format:可選,指定格式 eg:
nice:可選,true/false;指定是否輸出指定日期和當前時刻的時差,預設false不輸出
name:必須,指定要格式化的日期
var/id:可選,將事件物件放入值棧,
------------------------------
4 <s:debug />:用於除錯程式,顯示資訊
------------------------------
5 <s:i18n />:用於訪問國際化資原始檔的內容(檔名格式:name_zh_CN.properties,name為基本名)
name:指定資原始檔的基本名(帶範圍)。
若檔案放於src下則為全域性的;放在包下則為包範圍的;基本名和Action類的基本類名相同則為Action範圍的
<s:text />:用於獲取國際化資原始檔的內容。
name:對應資原始檔中的key
若為textfield獲取的話,應該使用key屬性對應資原始檔的key,不能使用name屬性
------------------------------
6、 <s:include value=""/>:匯入一個JSP檔案,value指定檔案路勁名
------------------------------
7 <s:param name="" value="" />:給指定引數設定值
------------------------------
8、 <s:property />:輸出值
------------------------------
9 <s:push />:可將程式設計師在ActionContext中引用的物件壓入值棧中,為以後訪問物件提供方便
value:指明需要壓入值棧的物件
------------------------------
10 <s:set />:宣告物件或者設定屬性值
name/id/var:變數的名稱
scope:範圍,page,request,session,application,action,預設在request和ActionContext中
value:變數的值
------------------------------
11 <s:url var="myurl" action="abc" namespace="/uitag">
<s:param name="name" value="ljh" />
</s:url>:生成url
<s:a href="%{myurl}">a標籤的連結</s:a>
action:該URL請求的action
namespace:該URL請求的ACTION所在的名空間
method:指明呼叫Action的什麼方法
id/var:該url的ID,引用此URL時用到
生成的路勁為:/struts/uitag/abc.action?name=ljh
》注: %符號的用途是在標誌的屬性為字串型別時,計算OGNL表示式的值,如value="%{#myurl}"《
<s:set name="Url" value="'http://www.baidu.com'" />
<s:a href="%{Url}">a標籤的連結</s:a>
----------------------//<s:url value="#Url" /> //輸出的是#myurl
<s:url var="url" value="%{#Url}" /> //輸出的是http://www.baidu.com
<s:a href="%{url}">a標籤的連結</s:a>
------------------------------
==============================
三、UI標籤
----
templateDir:定義模版目錄
theme:定義主題名字
template:定義模版名字
----
通用屬性:
cssClass:定義CSS屬性類
cssStyle:定義CSS屬性
title:定義html title屬性
disabled:是否失效
label:
labelPosition:label在form中的位置,從左從上計算
requiredPosition:定義必須的標籤在Form中的位置
name:
required:在label上新增一個*
tabIndex:定義html tabIndex屬性
value:
----------------
1 <s:checkbox name="" label="" value="" />
value:true/false,表示是否選中
<s:checkboxlist name="mylist" list="{'java','.net','php'}" value="{'java','php'}" />
list:複選框列的集合
name:複選框的名字
value:複選框預設選中的
theme:主題(共有屬性),struts2預設提供四種:simple、xhtml(預設)、css xhtml、ajax
<s:checkboxlist name="mymap" list="#{'a':'China', 'b':'English', 'c':'Canada'}" listKey="key" listValue="value" value="{'a','b'}" /> 如果集合中存放的是Javabean,則listKey和listValue的值可以直接用OGNL表示式,是bean的屬性
------------------------------
2 <s:combobox />:生成一個單行文字框和一個下拉列表框,當行文字框用於輸入(有請求引數),
下拉框用於輔助輸入(無請求引數),沒有實際意義
name:
label:
list:指定下拉框的值
headerKey:下拉框的頭ID
headerValue:下拉框的頭值
------------------------------
3 <s:radio name="mymap" list="#{1:'China',2:'English',3:'Canada'}" listKey="key" listValue="value" value="2" />表示2對應的預設選中
<s:radio name="mylist" list="{'java','php','c++'}" value="java" />表示java被預設選中
<s:radio name="r3" list="#attr.userList" listKey="id" listValue="name" />
------------------------------
4 <s:select name="mylist" list="{'java','php','c'}" value="java" multiple="" >
<s:optgroup label="資料庫" list="{'oracle','mysql'}" />
</s:select>
其他類似單/複選框
multiple:boolean,是否多選
size:設定下拉框顯示的選項個數
<s:optgroup label="資料庫" list="{'oracle','mysql'}" />:作select的子標籤用,在下拉框中分組顯示
------------------------------
5 <s:doubleselect />:二級聯動級聯選單
name:
list:
doublename:
doublelist:
label:
------------------------------
6 <s:optiontransferselect />:選項轉移列表,生成左右兩個列表框,可將一個的內容轉到另一個
------------------------------
7 <s:updownselect />:可上下選擇的select
lable:
name:
list:
emptyOption:boolean,是否加空白行,預設false
moveDownLabel:設定向下移動按鈕的文字
moveUpLabel:設定向下移動按鈕的文字
selectAllLabel:設定全選按鈕的文字
allowMoveDown:
allowMoveUp:
allowSelectAll:是否可以全部選中,為false時selectAllLabel屬性不可用
------------------------------
8 <s:token />:加入此標記防止表單重複提交
<s:form>
...<s:token /><s:submnit/>
</s:form>
需要啟動兩個攔截器:
<action ...>
<interceptor-ref name="defaultStack" />
<interceptor-ref name="token" />
<result name="invalid.token">...</result>
<result>...</result>
</action>
------------------------------
9 <s:textfield />:生成一個單行文字框
label:顯示在文字框外面的提示文字,
value:
maxlength:輸入的最大字元數
required:lable顯示時加上一個*號(提示必填)
size:文字框的長度
readonly:只讀
<s:textarea />:生成一個文字域
cols:
rows:
------------------------------
10 <s:file name="" accept="" />:檔案選擇標籤
accept:指定檔案的MIME型別
<s:label/>標籤:
<s:submnit name="method:login" />標籤:有三種類型
name:
type:指定型別,可以是submit/image/button
src:為image型別的時候指定路徑,
action:指定處理的action
method:指定處理的action的方法
disabled:指定此表單是否不可用
預定義的字首:method/action/redirect/redirect-action
method:取代action預設的execute方法(name="method:login")
action:取代form指定的action,導向另一個action(name="action:regist")
redirect:請求重定向到另一個URL,可以是應用程式外部的URL(name="redirect:http://www.baidu.com")
redirect-action:請求重定向到其他action
<s:reset />:生成一個重置按鈕,input型別時不能用label只有用value
type:指定型別為button/input,預設input,
------------------------------
11 <s:form />
------------------------------
匯入dojo外掛包:<%@taglib uri="/struts-dojo-tags" prefix="sd" %>
必須在<head>中用<sd:head parseContent="true" />
四、Dojo外掛包的標籤
1 <sd:datetimepicker datetimepicker name="#session.user.birthday"
id="birthday" displayFormat="yyyy-MM-dd" />:日期選擇控制元件
displayFormat:指定選中的日期生成的格式, yyyy-MM-dd
name:可以是OGNL表示式讀取的後代的值(Date型別)
value:
------------------------------
2 <sd:tabbedpanelbl />:選項卡控制元件
------------------------------
3 <sd:textarea />:textarea控制元件,華麗的文字域
------------------------------