====================================================================

需要在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控制元件,華麗的文字域

------------------------------