更新時間:2021-08-11 12:50:34 來源:動力節點 瀏覽917次
簡單的出現在JSP頁面中,就是Page、Request、Session、Application四個作用域中的值。
如果在STRUTS環境中,可以從上面四個范圍的值中取值。
特點1:${name},在值棧中的值的查找順序是:先從對象棧中取出,取出到終止處,否則取出到MAP中。
特點2:對象棧中的順序是,先在model中找到Name,找到終止,否則,在action中查找是否有NAME。全局變量。
特點三:${#name},沒有##。
特點四:如果放在對象棧中的是自定義對象,可以直接去對象的屬性,沒有這樣的${Object.property}
1.從后臺讀取傳入的值
%{#name}:從值棧中表示Map的值
%{name}:從值棧中表示對象棧的值
%{request.name} : 表示來自請求域的值
2.構建數據
A、構建MAP<S:Iterator Var = "Map" Value = "#{'Key1': 'Value1', 'Key2': 'Value2'}" />
B、構建列表<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 >
區別區別:OGNL通常與Struts 2結合使用,如 Struts頁面不能單獨使用,EL可以使用${sessionscope.username}
頁面價值差異:
OGNL是Struts 2 默認表達語言。是Object Graphic Navigation Language的縮寫,是一個開源項目。
1. # # 符號有三種用途。
(1)訪問非根對象屬性,如示例中的#session.msg表達式,由于Struts 2中棧被認為是根對象,所以在訪問其他非根對象時需要加上#前綴。其實,#aText.getContext(); # Session.msg 表達式等價于actionContext.getContext()。獲取會話()。GetAttribute(“味精”)。
(2)用于過濾和投影,如示例中的示例。{? # this.age> 20}。
(3) 用于構造MAP,如示例中的#{'foo1':'bar1','foo2':'bar2'}。
2. %symbol %符號的作用是計算屬性為字符串類型時OGNL表達式的值。如下代碼所示:構建MAP
3. $符號
$ 符號有兩個主要用途。在國際資源文件中,引用OGNL表達式,如國際資源文件中的代碼:REG.AGERANGE =國際化資源信息:年齡必須在${min}和${max}之間。在Struts 2框架的配置文件中引用OGNL表達式,如以下代碼段:
< validators >
< field name =”intb”>
<field-validator type =”int”>
<param name =”min”>10</param>
<param name =”max”>100</param>
<message > BAction-Test 檢查:數字必須是 ${min} 到 ${max}!</ message >
</ field-validator >
</ field >
以上就是動力節點小編介紹的"OGNL表達式和EL表達式的區別",希望對大家有幫助,想了解更多可查看EL表達式。動力節點在線學習教程,針對沒有任何Java基礎的讀者學習,讓你從入門到精通,主要介紹了一些Java基礎的核心知識,讓同學們更好更方便的學習和了解Java編程,感興趣的同學可以關注一下。
0基礎 0學費 15天面授
有基礎 直達就業
業余時間 高薪轉行
工作1~3年,加薪神器
工作3~5年,晉升架構
提交申請后,顧問老師會電話與您溝通安排學習