程序员的知识教程库

网站首页 > 教程分享 正文

Struts2的OGNL(struts2上传图片到数据库)

henian88 2024-08-12 19:44:58 教程分享 92 ℃ 0 评论

Ognl表达式简介

Ognl表达式

  • 是什么:

    Ognl是Object Graphic Navigation Language(对象图导航语言)的缩写,它是一个开源项目。 Struts2框架使用OGNL作为默认的表达式语言。

OGNL的jar包

  • 比较:

    其实ognl表达式和EL表达式有很多相似的地方,不过也有不同的地方。

(1)相同点:

获取域对象的数据

(2)不同点,

EL表达式:不能存放数据,不能调用方法

ognl表达式:可以存放数据,可以调用方法。

  • 优势:

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

2、支持类静态的方法调用和值访问,表达式的格式:

@[类全名(包括包路径)]@[方法名 | 值名],例如:

@java.lang.String@format('foo %s', 'bar')

或@tutorial.MyConstant@APP_NAME;

3、支持赋值操作和表达式串联,如price=100, discount=0.8,

calculatePrice(),这个表达式会返回80;

4、访问OGNL上下文(OGNL context)和ActionContext;

5、操作集合对象。

  • 怎么做:

    学习了解Ognl表达式的核心对象OgnlContext对象的使用

基本步骤:

步骤1:1)创建一个Ognlcontext对象

步骤2:2)把user对象存入OgnlContext对象

步骤3:3)从OgnlContext对象取出数据

先创建User.java实体(省略set,get和toString方法),创进行test。

User.java实体

目标: 学习了解Ognl表达式的核心对象OgnlContext对象的使用

  • 案例test1:

test1

结果

  • 案例test2:

使用Ognl表达式取出OgnlContext的数据,如果是非根对象数据,那么使用#号去取

test2

结果

  • 案例test3:

    使用Ognl表达式取出OgnlContext的数据,如果是根对象数据,不需要使用#号,不需要key名称,直接写存入对象的属性即可!!

test3

结果

  • 案例test4:

    Ognl表达式调用静态方法

test4

结果

结论:

1)从OgnlContext对象的根对象取出数据,不需要#号

2)从OgnlContext对象的非根对象取出数据,需要#号

本文暂时没有评论,来添加一个吧(●'◡'●)

欢迎 发表评论:

最近发表
标签列表