struts2標簽詳解 .


要在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


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM