Struts2中OGNL的 , , 使用

2021-08-22 18:33:40 字數 1506 閱讀 9304

ognl是通常要結合struts 2的標誌一起使用,如等。大家經常遇到的問題是#、%和$這三個符號的使用。

「#」主要有三種用途:

訪問ognl上下文和action上下文,#相當於actioncontext.getcontext();下表有幾個actioncontext中有用的屬性:

名稱作用例子

parameters

包含當前http請求引數的map

#parameters.id[0]作用相當於request.getparameter("id")

request

包含當前httpservletrequest的屬性(attribute)的map

#request.username相當於request.getattribute("username")

session

包含當前httpsession的屬性(attribute)的map

#session.username相當於session.getattribute("username")

包含當前應用的servletcontext的屬性(attribute)的map

attr

#attr.username相當於按順序在以上三個範圍(scope)內讀取username屬性,直到找到為止

用於過濾和投影(projecting)集合,如books. ;

構造map,如# 。

「%」符號的用途是在標誌的屬性為字串型別時,計算ognl表示式的值。例如在ognl.jsp中加入以下**:

<

hr />

<

h3>

%的用途

h3>

<

p><

s:url

value

="#foobar['foo1']"

/>

p>

<

p><

s:url

value

="%"

/>

p>

「$」有兩個主要的用途

用於在國際化資源檔案中,引用ognl表示式,例子請參考《在struts 2.0中國際化(i18n)您的應用程式 》

在struts 2配置檔案中,引用ognl表示式,如

<

action

name

="addphoto"

class

="addphoto"

>

<

interceptor-ref

name

="fileuploadstack"

/>

<

result

type

="redirect"

>

listphotos.action?albumid=$

result

>

action

>

struts2中ognl標籤的使用

一 1 list 表示要顯示的資料列表 2 listkey 表示提交表單時提交資料列表中物件的該字段 3 listvalue 表示顯示時顯示資料物件列表中該字段的內容 4 name 表示提交到action中後與該字段相匹配 5 headervalue 表示介面顯示時最上面的一條,相當於bootstr...

struts2中的ognl小問題

還是個小細節的問題 本是想在註冊之後,將註冊的名字通過session.set username username 然後轉到accountregist.jsp頁面,先前都寫成 或者或者 試了這幾個都不行,出現的值都是value裡的字串,而不是去值棧裡取值的,搞得真是夠鬱悶的 和 符號在ognl表示式中...

Struts2為什麼要使用OGNL

引言 眾所周知,在mvc中,資料是在各個層次之間進行流轉是乙個不爭的事實。而這種流轉,也就會面臨一些困境,這些困境,是由於資料在不同世界中的表現形式不同而造成的 1.資料在頁面上是乙個扁平的,不帶資料型別的字串,無論你的資料結構有多複雜,資料型別有多豐富,到了展示的時候,全都一視同仁的成為字串在頁面...