Struts2中s set標籤和s if標籤小結

2021-06-27 21:19:49 字數 3765 閱讀 6561

引言:今天自己做乙個

b2c的小專案前端頁面展示用到

strut2

標籤,期間遇到一些小的問題,在網上查詢,現總結如下:

1、s:set標籤

格式:<

s:set 

name

="" 

value

="" scope=」」

/>

用法①:

<

s:set 

name

="milolist" 

value=""

/>

這個值是乙個list容器,迭代使用s:iterator標籤,notice

list

、set

容器不加

」#」,

map要加

」#」;

用法②:

<

s:set 

name

="milonum" 

value

="24"

/>

notice:這個是整形,如果

value

的值是int

或long

型別,那麼就要在輸出的時候加

#,把它當作字串輸出,預設是以字串輸出.

輸出:<

s:property 

value

="#milonum"

/>

那麼如果

value

是字串呢?

<

s:set 

name

="milostr" 

value

="』24』"

/>

notice:這個是字串,

value

中的字串要加上單引號

(『),這樣才說明是字串。

輸出:<

s:property 

value

="milostr"

/>

用法③:用scope屬性說明儲存範圍

request:

<

s:set 

name

="miloval" 

value

="'24'" scope="request"

/>

輸出:<

s:property 

value

="#request.miloval"

/>

session:

<

s:set 

name="

miloval

" value

="'24'" scope="session"

/>

輸出:<

s:property 

value

="#session.

miloval

"/>

page:

<

s:set 

name

="miloval" 

value

="'24'" scope="page"

/>

輸出:<

s:property 

value="#

attr

.minval"

/>

notice

:attr.***

預設是從

2、s:if標籤

對於s:if標籤的用法,我這裡不做具體的說明,因為在網上都能查詢到,而且在前面的struts2 -- s:if

標籤的使用

中已經說明過了,這裡我只說明一下我在專案實踐中遇到的問題,如下: ①

假設在request中有個checkstatus屬性(這裡表示為審批狀態),有這樣乙個需求,如果checkstatus的值為』00』表示未審批,』01』表示已審批,那麼根據checkstatus的值,在頁面上顯示未審批或已審批。

我的頁面**如下:

<

s:if 

test

="#request.checkstatus == 『00』"

/>

未審批

已審批按理說,這樣應該能達到要求,但是結果往往不能如你所願,我用了很多的表示式方法,都沒能成功,最後我在action處理checkstatus,將其轉換為中文,然後直接在頁面上輸出,從中得到啟示,原因是因為我的checkstatus的值是從資料庫中取出來的,而在資料庫中checkstatus的型別為char(6),在資料庫裡面有這樣的規定如果是char型,那麼你定義的長度是多長就是多長,所以我在頁面上用#request.checkstatus的長度也應該是6,而』00』的長度顯然為2,這兩個值顯然不相等,因此此問題的解決方法為:

法①在action處理checkstatus用string的trim()方法;

法②修改資料庫欄位為varchar型別;

但個人認為,對於某個**表示某些值如:』00』表示:否,』01』表示:是,應該建立乙個分類**表,在資料庫中統一管理。

②s:set和s:if的應用例項

value="#request['ordermap']" 

status="st"

>

<

s:if

test="checksataus == '00'"

>

<

s:set

name="disabled"

value="''"

/>

<

s:if

test="#st.index == 0"

>

<

s:set

name="checked"

value="'checked'"

/>

s:if

>

<

s:else

>

<

s:set

name="checked"

value="''"

/>

s:else

>

s:if

>

<

s:else

>

<

s:set

name="disabled"

value="'disabled'"

/>

<

s:set

name="checked"

value="''"

/>

s:else

>

<

input

type="radio"

name="orderid"

value='

<

s:property

value="order.orderid"

/>'

<

s:property

value="disabled"

/>

<

s:property

value="checked"

/>

/>

記住該記住的,忘記該忘記的,改變能改變的,接受不能改變的! 

Struts2中s set標籤和s if標籤小結

今天自己做乙個小專案前端頁面展示用到 strut2 標籤,期間遇到一些小的問題,在網上查詢,現總結如下 注 本文摘於 1 s set標籤 格式 s set name value scope 說明 把 jsp頁面中的乙個值,以 name 儲存起來。scope 儲存的範圍是在 session reque...

struts2標籤簡介

用過struts1.x的人都知道,標籤庫有html bean logic tiles,而struts2.0裡的標籤卻沒有分類,只用在jsp標頭檔案加上 taglib prefix s uri struts tags 就能使用struts2.0的標籤庫 下面就介紹下每個標籤的用法 有錯請指正 a 超連...

struts2標籤解釋

a 超連結,類似於html裡的 雙下拉框 e 這3個標籤一起使用,表示條件判斷 f 顯示檔案錯誤資訊 檔案上傳 獲取相應form的值 g 和標籤一起使用 h 在裡使用,表示標頭檔案結束 隱藏值 i 載入資源包到值堆疊 包含乙個輸出,servlet或jsp頁面 獲取form的乙個輸入 用於遍歷集合 l...