OGNL表达式的入门

OGNL是Object Graph Navigation Language,用于Java的表达式语言,常见于Struts2框架,提供类型转换、方法调用和集合操作等功能。相比EL,OGNL更强大,支持对象方法调用、静态方法调用、赋值操作、访问上下文和操作集合。其基本元素包括表达式、root对象和context对象。在Java环境下,可以通过OGNL调用对象实例和静态方法,访问context和root对象中的数据。
摘要由CSDN通过智能技术生成
OGNL表达式的入门

1、什么是OGNL?

OGNL:Object Graph Navigation Language,对象图导航语言

它是应用于Java中的一个开源的表达式语言(Expression Language),它被集成在Struts2等框架中,作用是对数据进行访问,它拥有类型转换、访问对象方法、操作集合对象等功能。

OGNL:对象图导航语言,比EL表达式强大许多。

OGNL并不是Struts中独有的,它是一门独立的表达式语言,Struts2引用了这门表达式语言。

EL表达式:从内置的11个对象中获取数据。
例如:${ pageContext.request.contextPath }

OGNL:能调用java对象的方法,能获取Struts2中值栈的数据。


2、OGNL的作用

Struts 2默认的表达式语言是OGNL,原因是它相对其它表达式语言具有下面几大优势:

(1)支持对象方法调用,如xxx.doSomeSpecial();

(2)支持类静态的方法调用和值访问,表达式的格式为@[类全名(包括包路径)]@[方法名 | 值名]。

例如:@java.lang.String@format(‘foo %s’, ‘bar’)或@tutorial.MyConstant@APP_NAME;

(3)支持赋值操作和表达式串联。
例如price=100, discount=0.8, calculatePrice(price*discount),这个表达式会返回80;

(4)访问OGNL上下文(OGNL context)和ActionContext;
(5)操作集合对象。
(6)可以直接new一个对象。


3、OGNL的三要素

express表达式,root对象,context对象。


4、OGNL在java环境下的入门

先定义一个类:

public class Student {
   

    private Long no;
    private String name;

	// setter and getter

	// 构造方法

	// 重写toString()
}

(1)调用对象的实例方法

package com.pipi.struts2.ognl;

import ognl.Ognl;
import ognl.OgnlContext;
impo
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值