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.資料在頁面上是乙個扁平的,不帶資料型別的字串,無論你的資料結構有多複雜,資料型別有多豐富,到了展示的時候,全都一視同仁的成為字串在頁面...