日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問 生活随笔!

生活随笔

當前位置: 首頁 > 编程资源 > 编程问答 >内容正文

编程问答

java el ognl_el表达式跟ognl表达式的区别

發布時間:2025/3/20 编程问答 23 豆豆
生活随笔 收集整理的這篇文章主要介紹了 java el ognl_el表达式跟ognl表达式的区别 小編覺得挺不錯的,現在分享給大家,幫大家做個參考.

EL表達式:

>>單純在jsp頁面中出現,是在四個作用域中取值,page,request,session,application.

>>如果在struts環境中,它除了有在上面的四個作用域的取值功能外,還能從值棧(valuestack)中取值.

>>特點1:${name},name在值棧中的查找順序是:先從對象棧中取,取到終止,否則,向map中取。

>>特點2:在對象棧的查找順序是,先從model中找是否有name這個屬性,找到終止,否則,找action中是否有name這個全局變量。

>>特點3:${#name},里面的是不帶#號的。

>>特點4:如果放在對象棧中的是一個自定義的對象,那么${property}里面可以直接去該對象的屬性值,不用這樣${object.property}

OGNL表達式:

1:讀取從后臺傳遞的值

%{#name}:表示從值棧的map中取值

%{name}:表示從值棧的對象棧中取值

%{#request.name}:表示從request域中取值

2:自己構建數據

a,構建Map

b,構建List

1.區別

用法區別:OGNL是通常要結合Struts 2的標志一起使用,如

/> struts頁面中不能單獨使用,el可以單獨使用${sessionScope.username}

頁面取值區別:

名稱

servlet

ognl??????????????????????????????????????????????????????????? ?????????????? el

parameters

request.getParameter("username")

#username?????????????????????????????????????????????${username}

request

request.getAttribute("userName")

#request.userName?????????????????????????????? ?${requestScope.username}

session

session.getAttribute("userName")

#session.userName???????????????????????????????${sessionScope.username}

application

application.getAttribute("userName")

#application.userName????????????????????????? ${applicationScope.username}

attr

用于按request > session > application順序訪問其屬性(attribute)

#attr.userName相當于按順序在以上三個范圍(scope)內讀取userName屬性,直到找到為

2.ognl講解

OGNL是Struts

2默認的表達式語言。是Object Graphic Navigation Language(對象圖導航語言)的縮寫,它是一個開源項目。

1.#符號的用途一般有三種。? ?1)訪問非根對象屬性,例如示例中的#session.msg表達式,由于Struts 2中值棧被視為根對象,所以訪問其他非根對象時,需要加#前綴。實際上,#相當于ActionContext.getContext();;#session.msg表達式相當于ActionContext.getContext().getSession().

getAttribute(”msg”) 。 ? ? 2)用于過濾和投影(projecting)集合,如示例中的persons.{?#this.age>20}。

3)用來構造Map,例如示例中的#{’foo1′:’bar1′, ’foo2′:’bar2′}。

2.%符號?%符號的用途是在標志的屬性為字符串類型時,計算OGNL表達式的值。如下面的代碼所示: 構造Map

The?value?of?key?“foo1″?is

不使用%:

使用%:

The?value?of?key?“foo1″?is

不使用%:

使用%:

3.$符號

$符號主要有兩個方面的用途。 ? ?在國際化資源文件中,引用OGNL表達式,例如國際化資源文件中的代碼:reg.agerange=國際化資源信息:年齡必須在${min}同${max}之間。 ? ? 在Struts 2框架的配置文件中引用OGNL表達式,例如下面的代碼片斷所示:

10

100

BAction-test校驗:數字必須為${min}為${max}之間!

10

100

BAction-test校驗:數字必須為${min}為${max}之間!

總結

以上是生活随笔為你收集整理的java el ognl_el表达式跟ognl表达式的区别的全部內容,希望文章能夠幫你解決所遇到的問題。

如果覺得生活随笔網站內容還不錯,歡迎將生活随笔推薦給好友。