OGNL(Object Graph Navigation Language)物件圖導航語言
1.1 OGNL的全稱是Object Graph Navigation Language(物件圖導航語言),它是一種強大的表示式語言
1.2 OgnlContext(ongl上下文)其實就是Map (教室、老師、學生)
OgnlContext=根物件(1)+非根物件(N)
非根物件要通過"#key"訪問,根物件可以省略"#key"
注1:context:英文原意上下文,環境/容器
1.3 把根物件和非根物件說出來
1.3 把根物件和非根物件說出來
重點:
1、一個上下文中只有一個根物件
2、取根物件的值,只需要直接通過根物件屬性即可
3、非根物件取值必須通過指定的上下文容器中的#key.屬性去取。
1、ActionContext一次請求建立一次
2、值棧取值從上往下,取到為止,如果已經拿到,不再往下找。
ognl是一種思想 ognlContext
struts使用了這種思想 actionContext
- ValueStack
2.1 值棧
先進後出的資料結構,彈夾 push/pop
2.2 為什麼要使用ValueStack作為根物件
放到值棧中的物件都可視為根物件
從小到大
page -> request -> session -> application
從上至下找值
A
B
C
D
//虛擬碼
*.action
3. ActionContext
3.1 ActionContext ac = ActionContext.getContext();//保證同一請求中只建立一個上下文
request
session
application
parameters
ValueStack(root)
3.2 向ValueStack壓棧
push(XxxAction)//helloAction
push(ModelDirver.getModel())//model不為null user
3.3 Map<String,String[]> map = request.getParamterMap(); 壓action程式碼詳解
//引數名==OGNL表示式
{“userName”:“aaa”,“uname”:“bbb”,“upwd”:“ccc”,“age”:“22”}
setValue("userName", ac, vs, "aaa"); setValue("uname", ac, vs, "bbb"); setValue("upwd", ac, vs, "ccc"); setValue("age", ac, vs, "22");
- struts2中傳遞資料
可以使用作用域,但更多的是利用ValueStack或ActionContext
相關推薦
OGNL(Object Graph Navigation Language)物件圖導航語言
1.1 OGNL的全稱是Object Graph Navigation Language(物件圖導航語言),它是一種強大的表示式語言 1.2 OgnlContext(ongl上下文)其實就是Map (教室、老師、學生) OgnlContext=根物件(1)+
OGNL——物件圖導航語言,強大的表示式語言
OGNL 1.1 OGNL的全稱是Object Graph Navigation Language(物件圖導航語言),它是一種強大的表示式語言 1.2 OgnlContext(ongl上下文)其實就是Map (教室、老師、學生) OgnlContext=根物件(1)+非根物件(N)
第八天:物件圖導航語言
1、Strust 取值 EL 取值 #attr.age
6.1 物件的構造和析構(Object Costruction and Destruction)
一般而言,constructor和destructor的安插如你所預期那樣: //C++ pseudo { Point point; //point.Point::Point(); 一般會被安插在這裡 ... //point.Point::~Point(); 一般會被安插在這裡 }
Java How to Program習題_第九章_面向物件程式設計之繼承(Object-Oriented Programming: Inheritance)
這章的題目是目前為止所有章節中最簡單的! Self-Review Exercises 9.1 Fill in the blanks in each of the following statements: a) Inheritance is a form of so
HTML (Hyper Text Markup Language) 常用標簽
htm pla 行為 段落 中文 裏的 預格 border 表示 HTML是什麽? 英文全稱:Hyper Text Markup Language 中文全稱:超文本標記語言 網頁主要由 機構 表現 行為 組成 什麽是標簽? < > 裏的叫標簽 標
Hibernate查詢(HQL——Hibernate Query Language)
增加 exceptio 連接查詢 有一個 子句 內容 ike 例子 範圍 HQL查詢 HQL提供了是十分強大的功能,它是針對持久化對象,用取得對象,而不進行update,delete和insert等操作。而且HQL是面向對象的,具備繼承,多態和關聯等特性。 from子句
UML(六)-物件圖
前言 物件圖也是靜態圖的一種,但是物件圖描述一個系統在某個時刻 的靜態結構,顯示的是物件與物件之間的關係,而類圖描述所有可能的 情況。 用途 1.捕獲例項和連線 2.在分析和設計階段建立 3.捕獲互動的靜態結構 4.舉例說明資料(物件)的結構 5.詳細描述瞬
android之Intent複雜資料的傳遞一(Object型別的資料)
使用Serializable方式 前提:Object需要實現Serializable介面 Serializable方式傳遞Object的語法:bundle.putSerializable(key,object); 用Serializable方式接收Object的語法:o
(項目實戰一)響應式導航
源碼 資訊 AC 大屏幕 targe eight data- container 首頁 源碼如下: <%-- Created by IntelliJ IDEA. User: shyroke Date: 2018/6/13 0013 Time: 1
OGNL的全稱是對象圖導航語言
字符串 表達 struts sco avi 路徑 expr object ESS OGNL的全稱是對象圖導航語言( object-graph Navigation Language),它是一種功能強大的開源表達式語言,使用這種表達式語言,可以通過某種表達式語法,存取Java
物件池模式(Object Pool Pattern)。
定義 物件池模式,或者稱為物件池服務,通過迴圈使用物件,減少資源在初始化和釋放時的昂貴損耗。 注意:這裡的“昂貴”可能是時間效益(如效能),也可能是空間效益(如並行處理),在大多的情況下,“昂貴”指效能。 簡單的說,在需要時,從池中提取;不用時,放回池中,等待下一個請求。典型例子是連線池
別讓Java物件逃逸(Object Escape)
翻譯:吳嘉俊,叩丁狼高階講師 關於逃逸分析 我在開源專案Speedment的開發過程中,我和專案的貢獻者都意識到我們的程式碼不僅要良好並易懂,同時還要有較高的效能,否則他們很容易轉向使用其他的解決方案。 逃逸分析(Escape Analysis)允許我們在寫
如何對Python的類物件進行序列化處理(Object of type 'BookCollection' is not JSON serializable)
Python內建的json模組提供了非常完善的Python物件到JSON格式的轉換。 json.dumps() 將Python中的物件轉換為JSON中的字串物件json.loads() &
物件檢測(object detection)演算法圖解
摘要: 本文簡要介紹影象檢測中常用的深度學習方法——RCNN家族系列演算法,以影象講解形式,便於理解。 在生活中,經常會遇到這樣的一種情況,上班要出門的時候,突然找不到一件東西了,比如鑰匙、手機或者手錶等。這個時候一般在房間翻一遍各個角落來尋找
物件屬性的點表示法和方括號表示法的總結(object[i])
物件屬性的點表示法和方括號表示法的總結(object[i]) 寫專案時遇到的坑,自己來填,共大家參考: var person = { name:'dell' } 習慣上,呼叫物件的屬性,我們一般使用 person.name ,但其實也可以使用person[‘name’]
5.4 物件的效能(Object Efficiency)
以下的效率測試中,物件構造和拷貝所需的成本是以Point3d class宣告為基礎,從簡單形式逐漸到複雜形式,包括Plain OI' Data、抽象資料型別(ADT)、單一繼承、多重繼承、虛擬繼承。以下是測試的主角: Point3d lots_of_copies(Point3d a,Point3
5.3 物件複製語意學(Object Copy Semantics)
當我們設計一個class,並以一個class object賦值給另一個class object時,我們就用到了拷貝複製操作,我們可以選擇預設的淺拷貝,也可以自己提供一個explicit copy assignment operator,或者顯示的拒絕把一個class object賦值給另一個clas
物件儲存(Object-based Storage)概述
什麼是物件儲存?多次在不同場合被問起這個問題,於是就想寫篇小綜述文章。網上查詢資料時,找到幾篇不錯的資料,簡單整理一下,供自己和大家參考。 什麼是物件儲存(OSD)? 儲存區域網(SAN)和網路附加儲存(NAS)是目前兩種主流網路儲存架構,而物件儲存(Object-based Storage)是一種新的網路
JS 物件(Object)和字串(String)互轉
利用原生JSON物件,將物件轉為字串 [javascript] view plaincopy var jsObj = {}; jsObj.testArray = [1,2,3,4,5]; jsObj.name = 'CSS3'; jsObj.