OGNL表達式
OGNL:對象視圖導航語言. ${user.addr.name} 這種寫法就叫對象視圖導航.
OGNL不僅僅可以視圖導航.支持比EL表達式更加豐富的功能.
使用OGNL準備工作
導包:struts2 的包中已經包含了.所以不需要導入額外的jar包。
代碼準備
語法:
基本取值
賦值
調用方法
調用靜態方法
創建對象(List,Map)
OGNL與Struts2的結合
結合原理
ValueStack中的兩部分
棧原理
棧是由ArrayList模擬的
棧中的兩個方法的實現
訪問棧中屬性的特點.由上到下
查看值棧中兩部分內容(使用DEBUG標籤)
Root
默認情況下,棧中放置當前訪問的Action對象
Context
Context部分就是ActionContext數據中心
struts2與ognl結合體現
參數接收
如何獲得值棧對象,值棧對象與ActionContext對象是互相引用的
配置文件中
取出值語法:${ognl表達式}
一.ognl表達式
準備工作:
1.導包 - 包含在struts2包中
2.OGNLContext
|-Root 任意對象
|-Context Map
語法:
1.取值
2.賦值
3.調用方法
4.調用靜態方法
5.創建List|Map
二.OGNL與Struts2的整合
Struts2爲ognl準備了一個ValueStack對象,作爲ognl取值範圍
ValueStack
|-Root 棧
|-Context ActionContext(數據中心)
棧 => 默認放置當前訪問的Action對象
ActionContext
|- request
|- response
|- servletContext
|- requestScope
|- sessionScope
|- applicationScope
|- parameters
|- attrs
......
OGNL與Struts2結合的應用
|- 參數接收 => struts2中的參數是交給ognl引擎處理
|- 配置文件中 => ${ognl表達式}
|- 標籤(今天講)