struts 2的標簽

jopen 8年前發布 | 16K 次閱讀 Struts2 Web框架

           Struts 2提供了大量的標簽來開發表現層頁面。這些標簽的大部分,都可以在各種表現層技術中使用。</span>

          Struts 2 將所有標簽分為以下三類:

               UI(用戶界面):主要用于生成HTML元素的標簽

              非UI標簽:主要用于數據訪問、邏輯控制等的標簽

              Ajax標簽:用于Ajax支持的標簽

 

          1、控制標簽

           1)if/elseif/else :都是用來進行分支控制的

            語法格式為:

  
 <s: if test="表達式">
    標簽體
   </s:if>
    <s: elseif test="表達式">
    標簽體
   </s:elseif>

    <s: else test="表達式">
    標簽體
   </s:else>

           對于上面三個標簽的組合使用,只有<s:if.../>可以單獨使用。其余兩個必須和<s:if.../>配合使用。在這個當中可以與多個<s:elseif.../>標簽結合使用。

            2)、iterator用于將ListMapArrayList等集合進行循環遍歷
                 迭代輸出時,可以指定一下三個屬性:

                對于上面三個標簽的組合使用,只有<s:if.../>可以單獨使用。其余兩個必須和<s:if.../>配合使用。在這個當中可以與多個<s:elseif.../>標簽結合使用。

屬性

說明

value

value屬性指定的是被迭代的集合。如果沒有指定value屬性,則使用ValueStack棧頂的集合

id

id屬性指定集合里元素的ID

status

status屬性指定迭代的IteratorStatus實例。通過該實例可以判斷當前迭代元素的屬性

 

           3)、append標簽:用于將多個集合對象拼接起來,組成一個新的集合。它允許通過一個<iterator.../>標簽來完成對多個集合的迭代

                   該標簽需要指定一個var屬性,該屬性確定拼接生成的新集合的名字。

                 <s:append.../>可以接受多個<s:param.../>子標簽,每個子標簽指定一個集合。

           4)、generator標簽:可以將指定字符串按指定分隔符分隔成多個子串。

             該標簽有如下屬性:

 屬性

說明

count

該屬性指定生成集合中元素的總數

separator

該屬性指定用于解析字符串的分隔符

val

該屬性指定被解析的字符串

converter

該屬性指定一個轉換器,該轉換器負責將集合中的每個字符串轉換成對象

var

如果指定了該屬性,則將生成的Iterator對象放入StackContext

 

           5)、merge標簽:和append標簽相似。

                假如有兩個集合{'abc','def','ghi'} {'123','456','789'}

               通過append方式拼接,新集合的元素順序為:

                    abc  def  ghi  123  456  789

               通過merge方式拼接,新集合的元素順序為:

              abc  123  def  456  ghi  789

 

           6)、subset標簽:用于取得集合的子集

              該標簽有如下屬性:

屬性

說明

count

該屬性指定子集合中元素的個數。如果不指定該屬性,則默認取得源集合的全部元素

source

該屬性指定源集合。如果不指定該屬性,則默認取得ValueStack棧頂的集合

start

該屬性指定子集從源集合的第幾個元素開始截取。默認從第一個

decider

該屬性指定由開發者子集決定是否選中該元素

var

如果指定了該屬性,則將生成的Iterator對象設置為page范圍的屬性

 

           7)、sort標簽:用于對指定的集合元素進行排序。

                 進行排序時,必須提供自己的排序規則。即實現自己的Comparator

                 有如下幾個屬性:

屬性

說明

comparator

該屬性指定指定進行排序的Comparator實例

source

該屬性指定被排序的集合。如果不指定,則默認對ValueStack棧頂的集合進行排序

var

如果指定了該屬性,則將生成的Iterator對象設置成page范圍的屬性,不放入StackContext

 

           數據標簽:

           數據標簽主要用于提供各種數據訪問相關的功能,包含顯示一個Action里的屬性,以及生成國際化輸出等功能。

 

            1)、action標簽

                  使用action標簽可以允許在jsp頁面中直接調用Action。如果指定了executeResult參數的屬性值為true,該標簽還會把Action的處理結果包含到本頁面中來。

                 它有如下屬性:

屬性

說明

var

如果定義了該屬性,那么該Action將會被放入ValueStack

name

指定該標簽調用哪個Action

namespace

該屬性指定了該標簽調用的Action所在的namespace

executeResult

該屬性指定了是否要將Action的處理結果頁面包含到本頁面中

ignoreContextParams

該屬性指定了該頁面中的請求參數是否需要傳入調用的action

 

           2)、bean標簽:用于創建一個javaBean實例。

                 它有如下兩個屬性:  

屬性

說明

name

該屬性指定了要實例化的javaBean的實現類

var

如果指定了該屬性,則該JavaBean實例會被放入發哦Stack Context中,并放入requestScope

 

           3)、date標簽:該標簽用于格式化一個日期。還可以計算指定日期和當前時刻的時差

                 有如下屬性:

屬性

說明

form

如果指定了該屬性,將根據該屬性指定的格式來格式化日期

nice

該屬性用于指定是否輸出指定日期和當前時刻之間的時差。該屬性值只能為truefalse

name

該屬性指定要格式化的日期值

var

如果指定了該屬性格式化后的字符串將被放入Stack Context

注:如果既指定了nice="true",也指定了format屬性,則會輸出指定日期和當前時刻之間的時差,format屬性會失效。

 

           4)、debug標簽:它會在頁面生成一個超級鏈接,通過該鏈接可以查看到ValueStackStack Context中所有的信息

 

           5)include標簽:用于將一個jsp頁面或者一個Servlet包含到本頁面中。

               它有如下屬性:  

屬性

說明

value

該屬性指定需要被包含的jsp頁面或者Servlet

           還可以為該標簽指定多個<s:param.../>子標簽,用于將多個參數值傳入被包含的jsp頁面或者Servlet

 

           6)、param標簽:用于為其他標簽提供參數

                 該標簽有如下屬性:

屬性

說明

name

指定需要設置參數的參數名

value

指定需要設置參數的參數值

 

           7)、push標簽:用于將某個值放到ValueStack的棧頂

                有下面一個屬性:

屬性

說明

value

該屬性指定需要放到ValueStack棧頂的值

           只有在push標簽內時,被push標簽放入ValueStack中的對象才存在;一旦離開了push標簽,則剛剛放入的對象將會立即被移除ValueStack

 

           8)、set標簽:該標簽用于將某個值放入到指定的范圍內。

                Set標簽有如下屬性:

屬性

說明

scope

指定新變量被放置的范圍,該屬性可以接受applicationsessionrequestpage或者action5個值。默認為action

value

指定將賦給變量的值

var

如果指定了該屬性,則會將被放入到request范圍中,并被放入ONGLStack Context

 

           9)、url標簽:該標簽用于生成一個URL地址。

           可以通過為url標簽指定param子元素,從而向指定URL發送請求參數。

 

           10)、property標簽:該標簽的作用是輸出指定值。

                  該標簽有如下屬性:

屬性

說明

default

如果需要輸出的屬性值為null。則顯示default屬性指定的值

escape

指定是否escape HTML代碼

value

指定需要輸出的屬性值

 

           表單標簽

           1)checkboxlist標簽:創建復選框。相當于HTML中的checkbox標簽:

屬性

說明

list

根據指定的集合來生成多個復寫框

listKey

該屬性指定集合元素中的某個屬性作為復選框的value。如果集合是Map,則可以使用keyvalue指定Map對象的keyvalue作為復選框的value

listValue

該屬性指定集合元素中的某個屬性作為復選框的標簽。如果集合是Map,則可以使用keyvalue指定Map對象的keyvalue作為復選框的標簽

 

           2)、doubleselect標簽:該標簽用于生成一個級聯列表框。當選擇第一個下拉列表框時,第二個下拉列表框的內容會隨著改變。

            該標簽有如下屬性:

屬性

說明

list

指定用于輸出第一個下拉類表框中選項的集合

listKey

該屬性指定集合元素中的某個屬性作為第一個下拉列表框的value。如果集合是Map,則可以使用keyvalue指定Map對象的keyvalue作為復選框的value

listValue

該屬性指定集合元素中的某個屬性作為第一個下拉列表框的標簽。如果集合是Map,則可以使用keyvalue指定Map對象的keyvalue作為第一個下拉列表框的標簽

doubleList

指定用于輸出第二個下拉類表框中選項的集合

doubleListKey

該屬性指定集合元素中的某個屬性作為第二個下拉列表框的value。如果集合是Map,則可以使用keyvalue指定Map對象的keyvalue作為復選框的value

doubleListValue

該屬性指定集合元素中的某個屬性作為第二個下拉列表框的標簽。如果集合是Map,則可以使用keyvalue指定Map對象的keyvalue作為第二個下拉列表框的標簽

doubleName

指定第二個下拉列表框的name屬性

 

           4)、head標簽:用于生產HTML主要頁面的head部分。

 

           5)、optiontransferselect標簽:該標簽會生成兩個列表選擇框。并生成系列的按鈕用于控制各選項在兩個下拉列表之間的移動、升降。當提交表單時,兩個列表選擇框對應的請求參數都會被提交。

              該屬性有如下屬性:

屬性

說明

addAllToLeftLabel

設置全部移動到左邊按鈕上的文本

addAllToRightLabel

設置全部移動到右邊按鈕上的文本

addToLeftLabel

設置移動到左邊按鈕上的文本

addToRightLabel

設置移動到右邊按鈕上的文本

allowAddAllToLeft

設置是否出現全部移動到左邊的按鈕

allowAddAllToRight

設置是否出現全部移動到右邊的按鈕

allowAddToLeft

設置是否出現移動到左邊的按鈕

allowAddToRight

設置是否出現移動到右邊的按鈕

leftTitle

設置左邊列表框的標題

rightTitle

設置右邊列表框的標題

allowSelectAll

設置是否出現全部選擇按鈕

selectAllLabel

設置全部選擇按鈕上的文本

doubleList

設置用于創建第二個下拉選擇框的集合

doubleListKey

設置用于創建第二個下拉列表框的選項value的屬性

doubleListValue

設置用于創建第二個下拉列表框的選項label的屬性

doubleName

設置第二個下拉選擇框的name屬性

doubleValue

設置第二個下拉選擇框的value屬性

doubleMultiple

設置第二個下拉選擇框是否允許多選

list

設置用于創建第一個下拉選擇框的集合

listKey

設置用于創建第一個下拉列表框的選項value的屬性

listValue

設置用于創建第一個下拉列表框的選項label的屬性

name

設置第一個下拉選擇框的name屬性

value

設置第一個下拉選擇框的value屬性

multiple

設置第一個下拉選擇框是否允許多選

 

           6)、select標簽:該標簽用于生成一個下拉列表框。

                使用該標簽是必須制定list屬性。系統會使用list屬性指定的集合來生成下拉列表框的選項

                該標簽有如下屬性:

屬性

說明

listKey

該屬性指定集合元素中的某個屬性作為復選框的value。如果集合是Map,則可以使用keyvalue指定Map對象的keyvalue作為復選框的value

listValue

該屬性指定集合元素中的某個屬性作為復選框的標簽。如果集合是Map,則可以使用keyvalue指定Map對象的keyvalue作為復選框的標簽

multiple

設置該列表是否允許多選

 

           7)、radio標簽:該標簽用于生成多個單選框;

 

           8)、optgroup標簽:該標簽用于生成一個下拉列表框的選項組:

                  該標簽必須放在<s:select.../>標簽中使用

 

           9)、token標簽:該標簽用于阻止多次提交表單的問題。如果需要該標簽起作用,則應該在Struts 2的配置文件中啟用TokenInterceptor攔截器

              Token標簽的實現原理是:在表單中增加一個隱藏域。每次加載該頁面時,該隱藏域的值都會不同。而TokenInterceptor攔截器則攔截所有用戶請求,如果兩次請求時該token對應隱藏域的值相同,則會阻止表單提交。

 

           10)、updownSelect標簽:該標簽用于生產可以上下移動的列表框;

             該標簽的屬性如下:

屬性

說明

allowMoveUP

是否顯示“上移”按鈕

allowMoveDown

是否顯示“下移”按鈕

allowSelectAll

是否顯示“全選”按鈕

moveUpLabel

設置“上移”按鈕上的文本

moveDownLabel

設置“下移”按鈕上的文本

selectAllLabel

設置“全選”按鈕上的文本

 

讀李剛《輕量級Java EE企業應用實戰》

來自: http://blog.csdn.net/chenssy/article/details/7301959

 本文由用戶 jopen 自行上傳分享,僅供網友學習交流。所有權歸原作者,若您的權利被侵害,請聯系管理員。
 轉載本站原創文章,請注明出處,并保留原始鏈接、圖片水印。
 本站是一個以用戶分享為主的開源技術平臺,歡迎各類分享!