struts2基礎——標簽

来源:http://www.cnblogs.com/solverpeng/archive/2016/07/07/5649877.html
-Advertisement-
Play Games

一、通用標簽 1.s:property (讀取值棧中對象的屬性值) 屬性:value:指定OGNL表達式;default:OGNL表達式返回為 null 時,使用預設值;escape:是否對 HTML 特殊字元進行轉義 e1:讀取對象棧中對象的屬性值 e2:訪問Map棧,讀取Session域中對象的 ...


一、通用標簽

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>

 


您的分享是我們最大的動力!

-Advertisement-
Play Games
更多相關文章
  • php中一個"異類"語法: $a && $b = $c; php中一個"異類"語法: $a && $b = $c; $a = 1;$b = 2;$c = 3;$a && $b = $c;echo "a:$a";echo "b:$b";echo "c:$c";這樣是a:1b:3c:3$a = 0;$b ...
  • eclispe中,點擊調試運行java項目,出現 cannot connect to VM 正常的運行項目,沒問題; 以為是jdk的安裝路徑等的問題,還有殺毒軟體等等,都沒有正常; 後來找到是winsock出問題了,運行cmd ,在命令行中執行 netsh winsock reset 再重啟機器,果 ...
  • ③最後將B上的1個圓盤移到C上。 ★★★有了代碼就好辦了★★★ 代碼奉上▼ 關於C++與Dev-C++的下載 ...
  • 後續補充更新 ...
  • 這篇文章是關於Java static關鍵字的使用,主要會介紹以下的內容: 1. static 的概念 2. static的各種應用 3. 總結 static 是什麼 static 顧名思義是靜態的意思。與this相對,static表示所修飾的部分是屬於類本身所有的,不依賴與某個具體的實例。 而thi ...
  • /*************以下源碼通過測試******************************/ package cn.jason.ios.images; import java.awt.FileDialog;import java.awt.Image;import java.io.Fil ...
  • Java最早的名稱叫"oak"後來改名叫"Java". Java最早是屬於"Sun"公司的, 後來被"Oracle"公司收購. 最原始的"oak"是為電視/烤箱/家用電子產品做互動式開發(互動式開發可以理解為"互動式操作", "互動式操作"類似於 現在的"智能家居")的. Java各版本: Java ...
  • 以前在單項目中用過RabbitMQ,沒有問題 不過這次在分散式項目中使用RabbitMQ中有點搞糊塗了,但是實際上是沒有問題的,思路清晰就行 簡單看一下實際操作的示例吧: 資源文件中需要配置基本的rabbitMQ的屬性,如下: 然後要配置applicationContext-rabbitmq.xml ...
一周排行
    -Advertisement-
    Play Games
  • 移動開發(一):使用.NET MAUI開發第一個安卓APP 對於工作多年的C#程式員來說,近來想嘗試開發一款安卓APP,考慮了很久最終選擇使用.NET MAUI這個微軟官方的框架來嘗試體驗開發安卓APP,畢竟是使用Visual Studio開發工具,使用起來也比較的順手,結合微軟官方的教程進行了安卓 ...
  • 前言 QuestPDF 是一個開源 .NET 庫,用於生成 PDF 文檔。使用了C# Fluent API方式可簡化開發、減少錯誤並提高工作效率。利用它可以輕鬆生成 PDF 報告、發票、導出文件等。 項目介紹 QuestPDF 是一個革命性的開源 .NET 庫,它徹底改變了我們生成 PDF 文檔的方 ...
  • 項目地址 項目後端地址: https://github.com/ZyPLJ/ZYTteeHole 項目前端頁面地址: ZyPLJ/TreeHoleVue (github.com) https://github.com/ZyPLJ/TreeHoleVue 目前項目測試訪問地址: http://tree ...
  • 話不多說,直接開乾 一.下載 1.官方鏈接下載: https://www.microsoft.com/zh-cn/sql-server/sql-server-downloads 2.在下載目錄中找到下麵這個小的安裝包 SQL2022-SSEI-Dev.exe,運行開始下載SQL server; 二. ...
  • 前言 隨著物聯網(IoT)技術的迅猛發展,MQTT(消息隊列遙測傳輸)協議憑藉其輕量級和高效性,已成為眾多物聯網應用的首選通信標準。 MQTTnet 作為一個高性能的 .NET 開源庫,為 .NET 平臺上的 MQTT 客戶端與伺服器開發提供了強大的支持。 本文將全面介紹 MQTTnet 的核心功能 ...
  • Serilog支持多種接收器用於日誌存儲,增強器用於添加屬性,LogContext管理動態屬性,支持多種輸出格式包括純文本、JSON及ExpressionTemplate。還提供了自定義格式化選項,適用於不同需求。 ...
  • 目錄簡介獲取 HTML 文檔解析 HTML 文檔測試參考文章 簡介 動態內容網站使用 JavaScript 腳本動態檢索和渲染數據,爬取信息時需要模擬瀏覽器行為,否則獲取到的源碼基本是空的。 本文使用的爬取步驟如下: 使用 Selenium 獲取渲染後的 HTML 文檔 使用 HtmlAgility ...
  • 1.前言 什麼是熱更新 游戲或者軟體更新時,無需重新下載客戶端進行安裝,而是在應用程式啟動的情況下,在內部進行資源或者代碼更新 Unity目前常用熱更新解決方案 HybridCLR,Xlua,ILRuntime等 Unity目前常用資源管理解決方案 AssetBundles,Addressable, ...
  • 本文章主要是在C# ASP.NET Core Web API框架實現向手機發送驗證碼簡訊功能。這裡我選擇是一個互億無線簡訊驗證碼平臺,其實像阿裡雲,騰訊雲上面也可以。 首先我們先去 互億無線 https://www.ihuyi.com/api/sms.html 去註冊一個賬號 註冊完成賬號後,它會送 ...
  • 通過以下方式可以高效,並保證數據同步的可靠性 1.API設計 使用RESTful設計,確保API端點明確,並使用適當的HTTP方法(如POST用於創建,PUT用於更新)。 設計清晰的請求和響應模型,以確保客戶端能夠理解預期格式。 2.數據驗證 在伺服器端進行嚴格的數據驗證,確保接收到的數據符合預期格 ...