歡迎來到Linux教程網
Linux教程網
Linux教程網
Linux教程網
Linux教程網 >> Linux編程 >> Linux編程 >> Struts2基礎——標簽

Struts2基礎——標簽

日期:2017/3/1 9:14:22   编辑:Linux編程

一、通用標簽

1.s:property (讀取值棧中對象的屬性值)

屬性:value:指定OGNL表達式;default:OGNL表達式返回為 null 時,使用默認值;escape:是否對 HTML 特殊字符進行轉義

e1:讀取對象棧中對象的屬性值

<s:property value="[1].userName"/>

e2:訪問Map棧,讀取Session域中對象的屬性值

<s:property value="#session.sessionKey"/>

e3:訪問Map棧,通過attr讀取域對象中的屬性值

<s:property value="#attr.requestAttrKey"/>

e4:若不指定 value 值,則返回棧頂對象

2.s:url(創建一個 url 地址字符串)

屬性:value:創建 url 地址字符串;action:帶有 ContextPath 和 .action 後綴

e1:通過value屬性創建URL地址字符串

<s:url value="url"/>  <!-- url-->
<s:url value="/url"/> <!-- /struts2/url 帶有 ContextPath-->

e2:通過action屬性創建URL地址字符串

<s:url action="actionUrl"/> <!-- /struts2/actionUrl.action 不需要再次指定 / -->

e3:通過action屬性和namespace屬性以及method屬性創建URL地址字符串

<s:url action="acitonUrl" namespace="test" method="dynamicMethod"/> <!-- test/acitonUrl!dynamicMethod.action -->

e4:創建帶請求參數的URL地址字符串

<s:url value="/urlParam">
    <s:param name="userId" value="'zsmj'"/>
</s:url>
<!-- /struts2/urlParam?userId=zsmj -->
<!-- 
1.s:param 標簽:給父標簽傳遞參數
2.value:若不加單引號,則從值棧中查找,若值棧中找不到則不添加該參數;加單引號按字符串輸出
-->

e5:創建包含GET方式傳遞過來的請求參數的URL地址字符串

<s:url value="/urlParam" includeParams="get" />

e6:創建不包含contextPath的URL地址字符串

<s:url value="/urlParam4" includeContext="false"/>

3.s:set(將鍵值對存入域對象)

屬性:var:存入域對象中的 name 值;value:存入域對象中的 value 值; scope:域對象的范圍;其他兩個屬性都是過時的

e1:將attrName01="attrValue01"存入Session域

<s:set var="attrName01" value="'attrValue01'" scope="session"/>
<s:property value="#session.attrName01" />

e2:默認存入 request 域中

e3:value 可以為 OGNL 表達式,值為對應值棧中的值

<s:set value="#attr.attrName01" var="attrName03"/>
<s:property value="#attr.attrName03"/>

4.s:push(將一個對象臨時壓入棧頂,標簽結束後彈出)

屬性:value:要壓入棧頂的對象,可以為 OGNL 表達式 對應的值棧中的值

<s:push value="'pushObj'">
    <s:property/> <!-- pushObj -->
</s:push>
    <s:property/> <!-- com.nucsoft.struts2.helloworld.TestTagAction@7202555 -->

5.s:if、s:elseif、s:else

屬性:test: 布爾值

e1:傳入以age為鍵的請求參數,根據age的不同值測試不同分支條件

<s:if test="#parameters.age[0]>18">大於18歲了</s:if>
<s:elseif test="#parameters.age[0]<18">小於18歲</s:elseif>
<s:else>等於18歲了</s:else>

6.s:iterator(遍歷數組、Collection集合、Map集合,將遍歷得到的每一個結果放入棧頂,本次循環結束時彈出)

屬性:value:要遍歷的內容;var:將遍歷得到的值以字符串的形式放入請求域,如果不指定則放入棧頂;status:IteratorStatus類型,會放入到請求域中;begin:遍歷開始索引位置;end:遍歷結束索引位置,包含;step:步長,指定負數則倒序遍歷。

e1:遍歷集合

<s:iterator value="#attr.list">
    <s:property/>
</s:iterator>

e2:遍歷Map

<s:iterator value="#attr.map">
    <s:property value="key"/>
    <s:property value="value"/>
</s:iterator>

7.s:sort(對數組、Collection集合或Map集合中的元素進行排序)

屬性:

source:要比較的集合對象

var:將排序好的集合對象放入pageScope,若不指定,則存入值棧棧頂

comparator:比較器對象

8.s:date(格式化日期���

屬性:

name:指定一個 OGNL 表達式,用於讀取要格式化的日期對象

format:日期格式字符串,如"dd/MM/yyyy"

var:若有值,則以此值為key,存放到域對象中,若沒指定,則輸出。

9.s:a(創建一個超鏈接)

屬性:

href:將指定字符串原封不動的作為超鏈接的 href 值,不支持EL 表達式,如要從值棧中獲取數據,可以使用強制 OGNL 解析,%{OGNL表達式}%

value:不加 /,和 href 一樣,加 / ,自動加入 ContextPath

二、表單標簽

1.總覽

Struts2標簽名

對應的HTML元素

s:form

form

s:textfield

input type=”text”

s:password

input type=”password”

s:hidden

input type=”hidden”

s:submit

input type=”submit”

s:textarea

textarea

s:radio

input type=”radio”

s:select

select/option

s:optiongroup

optiongroup/option

s:checkboxlist

input type=”checkbox”

s:checkbox

單一的input type=”checkbox”

2.表單標簽的通用屬性

屬性名

類型

作用

label

String

指定一個表單元素在XHTML和Ajax主題下的行標,在simple主題下無效

name

String

指定一個表單元素的name屬性值,一個輸入元素的name屬性將被自動映射(或注入)到一個Action類中由setXxx()方法定義的屬性

value

String

指定一個表單元素的value屬性值

cssClass

String

指定一個表單元素的class屬性值

cssStyle

String

指定一個表單元素的style屬性值

title

String

指定一個表單元素的title屬性值

disabled

String

指定一個表單元素的disabled屬性值

labelPosition

String

指定一個表單元素在XHTML和Ajax主題下的行標位置,可選值[top|left]

key

String

這個輸入字段所代表的屬性的名字,name和label屬性的快捷方式

required

boolean

在XHTML主題中,指定該屬性是否加*

requiredPosition

String

指定一個表單元素的*的位置,可選值[left|right]

tabIndex

String

指定HTML標簽的tabindex屬性

3.s:form 標簽

屬性名

類型

默認值

作用

action

String

當前action

當前表單提交的目標Action

enctype

String

——

表單的enctype屬性

method

String

POST

表單提交的請求方式

namespace

String

當前namespace

目標Action所從屬的命名空間

acceptcharset

String

——

當前表單所接受的字符集,多個字符集用逗號或空格隔開

onsubmit

String

——

用於綁定onsubmit事件的句柄

openTemplate

String

——

用來打開這個表單的模板

portletMode

String

——

在用戶提交這個表單後將顯示的portlet模式

target

String

——

表單的target的屬性

validate

boolean

false

在XHTML/Ajax主題下是否進行客戶端輸入驗證

windowState

String

——

用戶提交表單後將顯示的窗口狀態

4.s:textfield標簽(生成一個單行文本框)

屬性名

類型

默認值

作用

maxlength

int

——

生成文本框後最多能容納多少個字符

readonly

boolean

false

生成的文本框是否為只讀

size

int

——

生成的文本框的寬度

key

可以同時代替 name 和 label 屬性

5.s:password標簽(生成一個密碼框)

說明:擴展自 s:textfield ,多了一個 showPassword 屬性,為 布爾型,決定要不要顯示輸入的密碼

6.s:hidden 標簽(用於生成一個表單隱藏域)

7.s:submit標簽(用於生成表單提交按鈕)

屬性名

類型

默認值

作用

align

String

right

XHTML/Ajax主題下控制提交按鈕的對齊方向

type

String

input

XHTML/Ajax主題下控制提交按鈕的顯示方式,可選值[input|button|image]

src

String

——

當type=image時,使用src屬性指定圖片路徑

8.s:textarea標簽(用於生成多行文本域)

屬性名

類型

默認值

作用

cols

int

——

textarea標簽的cols屬性

rows

int

——

textarea標簽的rows屬性

readonly

boolean

false

指定當前元素是否為只讀

9.有選擇功能的標簽的通用屬性

list屬性:指定用於生成多選框的list集合

listKey屬性:指定生成的多選框的value屬性

listValue屬性:指定每一個多選框旁邊的說明文字

name屬性:指定生成的多選框的name屬性

如果list屬性讀取的是一個Map,則可以由Map的鍵生成多選框的value屬性,Map的值生成多選框旁邊顯示的文字,所以此時不需要指定listKey和listValue屬性。

10.s:radio標簽(生成一組單選按鈕)

<s:radio list="#{'male':'男','female':'女'}" name="gender" label="性別"></s:radio>

11.s:select標簽(生成下拉列表)

屬性名

類型

默認值

作用

emptyOption

boolean

false

指定���否在標題下面插入一個空白選項

headerKey

String

——

選項列表中第一個選項的鍵

headerValue

String

——

選項列表中第一個選項的值

multiple

boolean

false

指定是否多選

size

int

——

同時顯示在頁面裡的選項個數

10.s:optiongroup標簽(示選項的分組,每個分組有自己數據的來源)

<s:optgroup label="opt01" list="#{'aa':'AA','bb':'BB' }"></s:optgroup>
<s:optgroup label="opt02" list="#{'aa':'AA','bb':'BB' }"></s:optgroup>

11. s:checkboxlist標簽(生成一組多選框)

<s:checkboxlist 
    list="#request.cities" 
    listKey="cityId" 
    listValue="cityName" 
    name="love" 
    label="喜愛的城市">
</s:checkboxlist> 

12.s:checkbox標簽(在頁面上提供一個勾選框,用於提交一個布爾值,典型的應用是“是否同意”)

<s:checkbox name="married" label="婚否"></s:checkbox>

<input type="checkbox" name="married" value="true" id="userAction_married"/>
<input type="hidden" id="__checkbox_userAction_married" name="__checkbox_married" value="true" />
<label for="userAction_married" class="checkboxLabel">婚否</label>

推薦閱讀:

Struts中異步傳送XML和JSON類型的數據 http://www.linuxidc.com/Linux/2013-08/88247.htm

Struts2的入門實例 http://www.linuxidc.com/Linux/2013-05/84618.htm

Struts2學習筆記-Value Stack(值棧)和OGNL表達式 http://www.linuxidc.com/Linux/2015-07/120529.htm

struts2文件上傳(保存為BLOB格式) http://www.linuxidc.com/Linux/2014-06/102905.htm

Struts2的入門實例 http://www.linuxidc.com/Linux/2013-05/84618.htm

Struts2實現ModelDriven接口 http://www.linuxidc.com/Linux/2014-04/99466.htm

遇到的Struts2文件下載亂碼問題 http://www.linuxidc.com/Linux/2014-03/98990.htm

Struts2整合Spring方法及原理 http://www.linuxidc.com/Linux/2013-12/93692.htm

Struts2 注解模式的幾個知識點 http://www.linuxidc.com/Linux/2013-06/85830.htm

Struts 的詳細介紹:請點這裡
Struts 的下載地址:請點這裡

Copyright © Linux教程網 All Rights Reserved