Struts2之OGNL表示式概述
阿新 • • 發佈:2019-01-09
OGNL表示式概述
OGNL 是Object Graphic Navigation Language(物件圖導航語言)的縮寫
- 所謂物件圖,即以任意一個物件為根,通過OGNL可以訪問與 這個物件關聯的其他物件
- 通過它簡單一致的表示式語法,可以存取物件的任意屬性,呼叫物件的方法,遍歷整個物件的結構圖,實現欄位型別轉化等功能,它使用相同的表示式取存取物件的屬性
Struts2框架使用OGNL作為預設的表示式語言
- OGNL 是一種比 EL強大很多倍的語言
- xwork提供OGNL表示式
- ognl-3.0.5.jar
OGNL提供五大類功能
- 支援物件方法呼叫
- 支援類靜態的方法呼叫和值訪問
- 訪問OGNL上下文(OGNL context)和ActionContext
- 支援賦值操作和表示式串聯
- 操作集合物件
public class OgnlDemo { @Test public void run1() throws OgnlException { //上下文物件 OgnlContext context = new OgnlContext(); //獲取到根物件 Object root = context.getRoot(); //儲存資料 context.put("name","梅梅"); //獲取值,表示式寫法 Object value = Ognl.getValue("#name", context, root); System.out.println(value); // Object value1 = Ognl.getValue("'haha'.length()", context, root); // System.out.println(value1); } //OGNL表示式呼叫方法 @Test public void run2() throws OgnlException{ //上下文物件 OgnlContext context = new OgnlContext(); //獲取到根物件 Object root = context.getRoot(); //獲取值,表示式寫法 Object value1 = Ognl.getValue("'haha'.length()", context, root); System.out.println(value1); } }
Struts2框架中使用OGNL表示式
Struts2引入了OGNL表示式,主要是在JSP頁面中獲取值棧中的值
具體在Struts2中的只用步驟:
- 需要先引入Struts2的標籤庫
<%@ taglib prefix="s" uri="/struts-tags"%>
- 使用struts2提供的標籤中的標籤
<s:property value ="'hello'.length()"/>
在JSP頁面使用OGNL表示式- 訪問物件方法
<s:property value="'hello'.length()">