struts2標籤詳解 .

weixin_34344677發表於2013-03-18

要在jsp中使用Struts2的標誌,先要指明標誌的引入。通過jsp的程式碼的頂部加入以下的程式碼:

<%@taglib prefix="s" uri="/struts-tags" %>

 

If elseif  else

描述:

執行基本的條件流轉。

引數:

名稱

必需

預設

型別

描述

備註

test

 

boolean

決定標誌裡的內容是否顯示的表示式

else標誌沒有這個引數

id

 

Object/String

用來標識元素的id。在UI和表單中為HTML的id屬性

 

 

例子:

<s:set name="age" value="61"/>

 

<s:if test="${age > 60}">

    老年人

</s:if>

<s:elseif test="${age > 35}">

    中年人

</s:elseif>

<s:elseif test="${age > 15}" id="wawa">

    青年人

</s:elseif>

<s:else>

    少年

</s:else>

 

<s:set name="name" value="<%="'"+ request.getParameter("name")+"'" %>"/>

<%

  System.out.println(request.getParameter("name"));

 %>

<s:if test="#name=='zhaosoft'">

  zhaosoft here

</s:if>

<s:elseif test="#name=='zxl'">

  zxl here

</s:elseif>

<s:else>

  other is here

</s:else>

 

Iterator(迭代)

描述:用於遍歷集合(java.util.Collection)或列舉值(java.util.iterator)

引數

名稱

必需

預設

型別

描述

status

 

String

如果設定此引數,一個IteratorStatus的例項將會壓入每一個遍歷的堆疊

value

 

Object/String

要遍歷的可列舉的(iteratable)資料來源,或者將放入的新列表(List)的對想

id

 

Object/String

用來標識元素的id。在ui和表單中為HTML的id屬性

 

I18n(國際化操作)

描述:

載入資源包到值堆疊。它可以允許text標誌訪問任何資源包的資訊。而不只當前的action相關聯的資源包。

名稱

必需

預設

型別

描述

name

 

Object/String

資源包的類路徑(如com.xxxx.resources.AppMsg)

id

 

Object/String

用來標識元素的id。在ui和表單中為HTML的id屬性

 

Include

描述:包含一個servlet的輸出(servlet或jsp的頁面)

名稱

必需

預設

型別

描述

value

 

String

要包含的jsp頁面或servlet

id

 

Object/String

用來標識元素的id。在ui和表單中為HTML的id屬性

 

 

param

描述:屬性是可選的,如果提供,會呼叫Component的方法,addParameter(String,Object),如果不提供,則外層巢狀標籤必須實現UnnamedParametric介面。

Value的提供有兩種方式,通過value屬性或者標籤中間的text,不同之處:

<s:param name="name">zhaosoft</s:param>

引數會以String的格式放入statck

<s:param name="name" value="zhaosoft"/>

該值會以java.lang.Object的格式放入statck

名稱

必需

預設

型別

描述

name

 

String

引數名

value

 

String

value表示式

id

 

Object/String

用來標識元素的id。在ui和表單中為HTML的id屬性

 

set

描述:set標籤賦予變數一個特定範圍內的值。當希望給一個變數賦一個複雜的表示式,每次訪問該變數而不是複雜的表示式時用到。其在兩種情況下非常有用:複雜的表示式很耗時(效能提升)或者很難理解(程式碼的可讀性提高)

引數:

名稱

必需

預設

型別

描述

name

 

String

變數名字

scope

 

String

變數作用域,可以為application,session,request,page,action

value

 

Object/String

將會賦給變數的值

id

 

Object/String

用來標識元素的id。在ui和表單中為HTML的id屬性

 

Text

描述:支援國際化資訊的標籤。國際化資訊必須放在一個和當前action同名的resource bundle中,如果沒有找到相應message,tag body將被當作預設的message,如果沒有tag body,message的name會被作為預設message.

名稱

必需

預設

型別

描述

name

 

String

資源屬性的名字

id

 

Object/String

用來標識元素的id。在ui和表單中為HTML的id屬性

 

url

描述:該標籤用於建立url,可以通過”param”標籤提供request引數。

當includeParams的值是all或get,param標籤中定義的引數將有優先權,也就是說其會覆蓋其他同名引數的值。

 

 

 

 

 

 

 

 

 

 

UI標誌

 

單行文字框

Textfield標籤輸出一個HTML單行文字輸入控制元件,等價於HTML程式碼<input type=”text”>

名稱

必需

預設

型別

描述

maxlength

Integer

文字輸入控制元件可以輸入字元的最大長度

readonly

false

Boolean

當該屬性為true時,不能輸入

size

Integer

指定可視尺寸

id

 

Object/String

用來標識元素的id。在ui和表單中為HTML的id屬性

 

例子:

<s:form action="register" method="post">

   <s:textfield name="username" label="使用者名稱"></s:textfield>

</s:form>

 

 

 

文字框區

Textarea標籤輸出一個HTML多行文字輸入控制元件,等價於HTML程式碼:<textarea />

名稱

必需

預設

型別

描述

cols

Integer

列數

rows

Integer

行數

readonly

false

Boolean

當該屬性為true時,不能輸入

wrap

false

Boolean

指定多行文字輸入控制元件是否應該換行

id

 

Object/String

用來標識元素的id。在ui和表單中為HTML的id屬性

 

例子:

<s:textarea name="personal" cols="10" rows="5" label="個人簡歷"></s:textarea>

 

 

 

下拉選單

s:select 標籤輸出一個下拉選單框,相當於HTML程式碼中的<select/>

名稱

必需

預設

型別

描述

list

Cellection Map Enumeration Iterator array

要迭代的集合,使用集合中的元素來設定各個選項,如果list的屬性為Map則Map的key成為選項的value,Map的value會成為選項的內容

listKey

String

指定集合物件中的哪個屬性作為選項的value

listValue

String

指定集合物件中的哪個屬性作為選項的內容

headerKey

String

設定當使用者選擇了header選項時,提交的的value,如果使用該屬性,不能為該屬性設定空值

headerValue

String

顯示在頁面中header選項內容

emptyOption

false

Boolean

是否在header選項後面新增一個空選項

multiple

false

Boolean

是否多選

size

Integer

顯示的選項個數

 

例子:

%@ page contentType="text/html;charset=GBK" %>

<%@ taglib prefix="s" uri="/struts-tags" %>

 

<h3>使用name和list屬性,list屬性的值是一個列表</h3>

<s:form>

    <s:select label="最高學歷" name="education" list="{'高中','大學','碩士','博士'}"/>

</s:form>

 

<h3>使用name和list屬性,list屬性的值是一個Map</h3>

<s:form>

    <s:select label="最高學歷" name="education" list="#{1:'高中',2:'大學',3:'碩士',4:'博士'}"/>

</s:form>

 

<h3>使用headerKey和headerValue屬性設定header選項</h3>

<s:form>

    <s:select label="最高學歷" name="education" list="{'高中','大學','碩士','博士'}"

       headerKey="-1" headerValue="請選擇您的學歷"/>

</s:form>

 

 

<h3>使用emptyOption屬性在header選項後新增一個空的選項</h3>

<s:form>

    <s:select label="最高學歷" name="education" list="{'高中','大學','碩士','博士'}"

       headerKey="-1" headerValue="請選擇您的學歷"

       emptyOption="true"/>

</s:form>

 

 

<h3>使用multiple屬性設定多選</h3>

<s:form>

    <s:select label="最高學歷" name="education" list="{'高中','大學','碩士','博士'}"

       headerKey="-1" headerValue="請選擇您的學歷"

       emptyOption="true"

       multiple="true"/>

</s:form>

 

<h3>使用size屬性設定下拉框可顯示的選項個數</h3>

<s:form>

    <s:select label="最高學歷" name="education" list="{'高中','大學','碩士','博士'}"

       headerKey="-1" headerValue="請選擇您的學歷"

       emptyOption="true"

       multiple="true" size="8"/>

</s:form>

 

 

<h3>使用listKey和listValue屬性,利用Action例項的屬性(property)來設定選項的值和選項的內容</h3>

<s:form>

    <s:select label="最高學歷" name="education" list="educations"

       listKey="id" listValue="name"/>

</s:form

 

 

 

doubleselect標籤

doubleselect標籤輸出關聯的兩個HTML列表框,產生聯動效果。

名稱

必需

預設

型別

描述

list

Cellection Map Enumeration Iterator array

要迭代的集合,使用集合中的元素來設定各個選項,如果list的屬性為Map則Map的key成為選項的value,Map的value會成為選項的內容

listKey

String

指定集合物件中的哪個屬性作為選項的value,該選項只對第一個列表框起作用

listValue

String

指定集合物件中的哪個屬性作為選項的內容,該選項只對第一個列表框起作用

headerKey

String

設定當使用者選擇了header選項時,提交的的value,如果使用該屬性,不能為該屬性設定空值

headerValue

String

顯示在頁面中header選項內容

emptyOption

false

Boolean

 

multiple

false

Boolean

是否多選

size

Integer

顯示的選項個數,該選項只對第一個列表框起作用

doubleId

String

指定第二個列表框的ID

doubleList

Cellection Map Enumeration Iterator array

要迭代的集合

doubleListKey

String

指定集合物件中的哪個屬性作為選項的value,該選項只對第二個列表框起作用

doubleListValue

String

指定集合物件中的哪個屬性作為選項的內容,該選項只對第二個列表框起作用

doubleSize

Integer

選項個數

doubleName

String

指定第二個列表框的name對映

doubleValue

Object

第二個列表框的初始選種項

 

例項:

<s:form name="test">

    <s:doubleselect label="請選擇所在省市"

       name="province" list="{'四川省','山東省'}" doubleName="city"

       doubleList="top == '四川省' ? {'成都市', '綿陽市'} : {'濟南市', '青島市'}" />

</s:form>

 

<s:form action="doubleselectTag">

    <s:doubleselect

            label="請選擇所在省市"

            name="province"

            list="provinces"

            listKey="id"

            listValue="name"

            doubleList="cities"

            doubleListKey="id"

            doubleListValue="name"

            doubleName="city"

            headerKey="-1"

            headerValue="---------- 請選擇 ----------"

            emptyOption="true" />

</s:form>

 

核取方塊

名稱

必需

預設

型別

描述

fieldValue

true

String

指定在核取方塊選中時,實際提交的值

 

核取方塊組,對應Action中的集合

名稱

必需

預設

型別

描述

list

Cellection Map Enumeration Iterator array

要迭代的集合,使用集合中的元素來設定各個選項,如果list的屬性為Map則Map的key成為選項的value,Map的value會成為選項的內容

listKey

String

指定集合物件中的哪個屬性作為選項的value

listValue

String

指定集合物件中的哪個屬性作為選項的內容

例子:checkboxlistTag.jsp

<%@ page contentType="text/html;charset=GBK" %>

<%@ taglib prefix="s" uri="/struts-tags" %>

<s:form>

    <s:checkboxlist name="interest" list="{'足球','籃球','排球','游泳'}" label="興趣愛好"/>

</s:form>

 

單擊核取方塊

 

檔案選擇組建

file標籤輸出一個HTML檔案選擇框。

名稱

必需

預設

型別

描述

accept

input

String

HTML accept屬性,指出接受檔案的MIME型別

 

按鈕

Submit標籤輸出一個按鈕,submit標籤和form標籤使用可以提供非同步表單提交功能。Submit標籤可以輸出以下三種型別的提交按鈕:

Input: 等價於 HTML程式碼<input type=”submit”>

Image: 等價於 HTML程式碼 <input type="image">

Button:<button type="submit"></button>

名稱

必需

預設

型別

描述

type

input

String

要使用的提交按鈕的型別,有效值:input button image

src

String

為image型別的提交按鈕設定圖片地址。該屬性對input和button型別的提交按鈕無效

action

String

指定處理提交請求的action

method

String

指定處理提交請求的action的方法

例項

例項1.<s:submit type="image" method="login" src="images/login.jpg"></s:submit>

頁面輸出:

<input type="image" alt="Submit" src="images/login.jpg" id="user__login" name="method:login" value="Submit"/>

 

例項2.<s:submit type="button" action="selectTag" method="login" label="登陸"></s:submit>

頁面輸出:

<button type="submit" id="user_selectTag_login" name="action:selectTag!login" value="Submit">登陸</button>

 

Struts2預定義的字首:

1。method   method:login

使用method字首,來取代action預設的execute()方法的執行。

<s:form action="user">

   <s:textfield name="user.username" label="使用者名稱"></s:textfield>

   <s:textfield name="user.password" label="密碼"></s:textfield>

   <s:submit value="登陸" name="method:login"></s:submit>

   <s:submit value="註冊" name="method:register"></s:submit>

</s:form>

 

注意:1input型別的按鈕,不能用label設定按鈕上的文字,只能用value

2action字首

使用action字首,取代form標籤指定的action,導向到另一個action進行處理。

<s:form action="login">

   <s:textfield name="user.username" label="使用者名稱"></s:textfield>

   <s:textfield name="user.password" label="密碼"></s:textfield>

   <s:submit value="登陸"></s:submit>

   <s:submit value="註冊" name="action:register"></s:submit>

</s:form>

 

2redirect字首

使用redirect字首請求重定向到其他的url,甚至可以是web英語程式外部的url。

<s:form action="login">

   <s:textfield name="user.username" label="使用者名稱"></s:textfield>

   <s:textfield name="user.password" label="密碼"></s:textfield>

   <s:submit value="登陸"></s:submit>

   <s:submit value="搜尋" name="redirect:www.google.com"></s:submit>

</s:form>

2redirect-action字首

使用redirect-action字首請求重定向到其他的action.

<s:form action="login">

   <s:textfield name="user.username" label="使用者名稱"></s:textfield>

   <s:textfield name="user.password" label="密碼"></s:textfield>

   <s:submit value="登陸"></s:submit>

   <s:submit value="搜尋" name="redirect-action:register"></s:submit>

</s:form>

reset標籤

reset標籤輸出一個重置按鈕

名稱

必需

預設

型別

描述

type

input

String

要使用的重置按鈕的內容,input、button

 

<s:reset value="重置"></s:reset>

<s:reset type="button" label="重置"></s:reset>

updownselect標籤

updownselect標籤建立一個帶有上下移動的按鈕的列表框,可以通過上下移動按鈕來調整列表框的選項的位置。

 

名稱

必需

預設

型別

描述

list

Cellection Map Enumeration Iterator array

要迭代的集合,使用集合中的元素來設定各個選項,如果list的屬性為Map則Map的key成為選項的value,Map的value會成為選項的內容

listKey

String

指定集合物件中的哪個屬性作為選項的value

listValue

String

指定集合物件中的哪個屬性作為選項的內容

headerKey

String

設定當使用者選擇了header選項時,提交的的value,如果使用該屬性,不能為該屬性設定空值

headerValue

String

顯示在頁面中header選項內容

emptyOption

false

Boolean

是否在header選項後面新增一個空選項

multiple

false

Boolean

是否多選

size

Integer

顯示的選項個數

moveUplabel

 

String

設定向上移動按鈕上的文字

moveDownLabel

 

String

設定向下移動按鈕上的文字

selectAllLabel

 

String

設定向全部選擇按鈕上的文字

allowMoveUp

Boolean

設定是否使用向上移動按鈕

allowMoveDown

Boolean

設定是否使用向下移動按鈕

allowSelectAll

Boolean

設定是否使用全部選擇按鈕

 

例項:

<s:form>

<!-- 使用簡單集合來生成可上下移動選項的下拉選擇框 -->

<s:updownselect name="a" label="請選擇您喜歡的圖書" labelposition="top"

    moveUpLabel="向上移動"

    list="{'Spring2.0寶典' , '輕量級J2EE企業應用實戰' , 'JavaScript: The Definitive Guide'}"/>

   

   

<!-- 使用簡單Map物件來生成可上下移動選項的下拉選擇框

     且使用emptyOption="true"增加一個空選項-->

<s:updownselect name="b" label="請選擇您想選擇出版日期" labelposition="top"

    moveDownLabel="向下移動"

    list="#{'Spring2.0寶典':'2006年10月' , '輕量級J2EE企業應用實戰':'2007月4月' , '基於J2EE的Ajax寶典':'2007年6月'}"

    listKey="key"

    emptyOption="true"

    listValue="value"/>

   

<s:bean name="com.zhaosoft.ui.formtag.BookService" id="bs"/>

<!-- 使用集合裡放多個JavaBean例項來可上下移動選項的生成下拉選擇框 -->

<s:updownselect name="c" label="請選擇您喜歡的圖書的作者" labelposition="top"

    selectAllLabel="全部選擇" multiple="true"

    list="#bs.books"

    listKey="author"

    listValue="name"/>

</s:form>

 

package com.zhaosoft.ui.formtag;

public class BookService

{

    public Book[] getBooks()

    {

       return new Book[]

       {

           new Book("Spring2.0寶典","zhaosoft"),

           new Book("輕量級J2EE企業應用實戰","zhaosoft"),

           new Book("基於J2EE的Ajax寶典","zhaosoft")

       };

    }

}

 

 

 

optiontransferselect標籤

optiontransferselect標籤建立一個選項轉移列表組建,它由兩個<select>標籤以及它們之間的用於將選項在兩個<select>之間相互移動的按鈕組成。表單提交時,將提交兩個列表框中選中的選項。

名稱

必需

預設

型別

描述

list

Cellection Map Enumeration Iterator array

要迭代的集合,使用集合中的元素來設定各個選項,如果list的屬性為Map則Map的key成為選項的value,Map的value會成為選項的內容,該選項只對第一個列表框起作用

listKey

String

指定集合物件中的哪個屬性作為選項的value,該選項只對第一個列表框起作用

listValue

String

指定集合物件中的哪個屬性作為選項的內容,該選項只對第一個列表框起作用

headerKey

String

設定當使用者選擇了header選項時,提交的的value,如果使用該屬性,不能為該屬性設定空值

headerValue

String

顯示在頁面中header選項內容

multiple

false

Boolean

是否多選

size

Integer

顯示的選項個數,該選項只對第一個列表框起作用

doubleId

String

指定第二個列表框的ID

doubleList

Cellection Map Enumeration Iterator array

要迭代的集合,使用集合中的元素來設定各個選項,如果doubleList的屬性為Map則Map的key成為選項的value,Map的value會成為選項的內容,該選項只對第二個列表框起作用

doubleListKey

String

指定集合物件中的哪個屬性作為選項的value,該選項只對第二個列表框起作用

doubleListValue

String

指定集合物件中的哪個屬性作為選項的內容,該選項只對第二個列表框起作用

doubleHeaderKey

String

設定當使用者選擇了header選項時,提交的的value,如果使用該屬性,不能為該屬性設定空值

doubleHeaderVale

String

顯示在頁面中header選項內容

doubleEmptyOption

String

是否在第二列表框的header後面新增一個空選項

doubleMultiple

true

Boolean

是否多選

doubleSize

Integer

選項個數

doubleName

String

指定第二個列表框的name對映

doubleValue

Object

第二個列表框的初始選種項

leftTitle

String

左邊列表框的標題

rightTitle

<-

String

右邊列表框的標題

addToLeftLable

 

String

 

addToRightLable

 

 

 

 

addAllToLeftLable

 

 

 

 

addAllToRightLable

 

 

 

 

leftUpLabel

 

 

 

 

leftDownLabel

 

 

 

 

rightUpLabel

 

 

 

 

rightDownLabel

 

 

 

 

allowAddToLeft

 

 

 

 

allowAddToright

 

 

 

 

allowAddAllToLeft

 

 

 

 

allowAddAllToRight

 

 

 

 

allowSelectAll

Boolean

設定是否使用全部選擇按鈕

allowUpdownOnLeft

 

 

 

 

allowUpDownOnRight

 

 

 

 

 

例子:

<s:head/>

<s:form>

    <s:optiontransferselect

    label="最喜愛的圖書"

        name="javaBook"

        list="{'《Java Web開發詳解》', '《Struts 2深入詳解》', '《Java快速入門》'}"

        doubleName="cBook"

        doubleList="{'《VC++深入詳解》', '《C++ Primer》', '《C++程式設計語言》'}"/>

</s:form>

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

<s:form>

    <s:optiontransferselect

    label="最喜愛的圖書"

        name="book1"

        leftTitle="Java圖書"

        rightTitle="C/C++圖書"

        list="{'《Java Web開發詳解》', '《Struts 2深入詳解》', '《Java快速入門》'}"

        headerKey="-1"

        headerValue="--- 請選擇 ---"

        emptyOption="true"

        doubleName="book2"

        doubleList="{'《VC++深入詳解》', '《C++ Primer》', '《C++程式設計語言》'}"

        doubleHeaderKey="-1"

        doubleHeaderValue="--- 請選擇 ---"

        doubleEmptyOption="true"

        addToLeftLabel="向左移動"

        addToRightLabel="向右移動"

        addAllToLeftLabel="全部左移"

        addAllToRightLabel="全部右移"

        selectAllLabel="全部選擇"

        leftUpLabel="向上移動"

        leftDownLabel="向下移動"

        rightUpLabel="向上移動"

        rightDownLabel="向下移動"/>

</s:form>

原文:http://blog.csdn.net/zxl315/article/details/2886456

相關文章:

http://www.open-open.com/lib/view/open1331393920452.html

http://www.cnblogs.com/focusj/archive/2011/01/04/2057651.html

相關文章