更新時間:2021-08-11 12:50:34 來源:動力節(jié)點 瀏覽1142次
簡單的出現(xiàn)在JSP頁面中,就是Page、Request、Session、Application四個作用域中的值。
如果在STRUTS環(huán)境中,可以從上面四個范圍的值中取值。
特點1:${name},在值棧中的值的查找順序是:先從對象棧中取出,取出到終止處,否則取出到MAP中。
特點2:對象棧中的順序是,先在model中找到Name,找到終止,否則,在action中查找是否有NAME。全局變量。
特點三:${#name},沒有##。
特點四:如果放在對象棧中的是自定義對象,可以直接去對象的屬性,沒有這樣的${Object.property}
1.從后臺讀取傳入的值
%{#name}:從值棧中表示Map的值
%{name}:從值棧中表示對象棧的值
%{request.name} : 表示來自請求域的值
2.構(gòu)建數(shù)據(jù)
A、構(gòu)建MAP<S:Iterator Var = "Map" Value = "#{'Key1': 'Value1', 'Key2': 'Value2'}" />
B、構(gòu)建列表<s: iperator var = "list" value = "{'one', 'two', 'three'}>
< s:iterator value ="#request.deptList" var ="dept" >
< div class ="splist" style ="line-height:40px; border-bottom:1px solid #ccc;" >
< div class ="tbm1" >< s:property value ="#dept.depname" /></ div >
< div class ="tbm2" > ${dept.depcode} </ div >
< div class =" tbm3" >< s:property value ="#dept.address" /></ div >
<="#dept.phone" /></ div >
</ div >
</ s:iterator >
區(qū)別區(qū)別:OGNL通常與Struts 2結(jié)合使用,如 Struts頁面不能單獨(dú)使用,EL可以使用${sessionscope.username}
頁面價值差異:

OGNL是Struts 2 默認(rèn)表達(dá)語言。是Object Graphic Navigation Language的縮寫,是一個開源項目。
1. # # 符號有三種用途。
(1)訪問非根對象屬性,如示例中的#session.msg表達(dá)式,由于Struts 2中棧被認(rèn)為是根對象,所以在訪問其他非根對象時需要加上#前綴。其實,#aText.getContext(); # Session.msg 表達(dá)式等價于actionContext.getContext()。獲取會話()。GetAttribute(“味精”)。
(2)用于過濾和投影,如示例中的示例。{? # this.age> 20}。
(3) 用于構(gòu)造MAP,如示例中的#{'foo1':'bar1','foo2':'bar2'}。
2. %symbol %符號的作用是計算屬性為字符串類型時OGNL表達(dá)式的值。如下代碼所示:構(gòu)建MAP
3. $符號
$ 符號有兩個主要用途。在國際資源文件中,引用OGNL表達(dá)式,如國際資源文件中的代碼:REG.AGERANGE =國際化資源信息:年齡必須在${min}和${max}之間。在Struts 2框架的配置文件中引用OGNL表達(dá)式,如以下代碼段:
< validators >
< field name =”intb”>
<field-validator type =”int”>
<param name =”min”>10</param>
<param name =”max”>100</param>
<message > BAction-Test 檢查:數(shù)字必須是 ${min} 到 ${max}!</ message >
</ field-validator >
</ field >
以上就是動力節(jié)點小編介紹的"OGNL表達(dá)式和EL表達(dá)式的區(qū)別",希望對大家有幫助,想了解更多可查看EL表達(dá)式。動力節(jié)點在線學(xué)習(xí)教程,針對沒有任何Java基礎(chǔ)的讀者學(xué)習(xí),讓你從入門到精通,主要介紹了一些Java基礎(chǔ)的核心知識,讓同學(xué)們更好更方便的學(xué)習(xí)和了解Java編程,感興趣的同學(xué)可以關(guān)注一下。

初級 202925

初級 203221

初級 202629

初級 203743