OGNL(Object Graphic Navigation Language,对象图导航语言)是一种功能强大的EL(Expression Language,表达式语言,JSP2.0规范),Struts2的核心表达式语言,OGNL是一个开源JAVA项目,但因为使用Struts2,我们完全不需要知道OGNL到底里面是什么东东,只需要按照Struts2的规则知道如何使用就OK了!第二章已经说过(请参看第二章的OGNL结构图),Struts2将Action中的实例压入值栈(ValueStack,值栈,Struts2的根对象,可以把它简单的理解为List,只不过它遵循堆栈的特点,先进后出!),session等放入Context Map中,然后使用OGNL遍历对象结构图进行操作。
在JSP中,session、request、application、attr(如果可以就从pageContext查找,否则就依次到request、session、application中查找)、parameters(用于取URL上的参数,同名的变量可以使用索引)等对象取值时要使用前缀 # 告诉Struts2不要到值栈中查找,例如:(1.)#session.infomation,#session[‘student-information’],OGNL中使用 . 或者[‘’]访问对象的属性,两者的区别是当属性中有“-”等特殊字符时,我们需要使用[‘’];
(2.)URL为http://locaohost:9999/struts01/HelloWorld.ok?name=gold&&password=jsmart,如果我想取name的值,需要这样写#parameters.name,取password的值就是#parameters.password;如果是http://localhost:9999/struts01/HelloWorld.ok?password=gold&&password=jsmart,#parameters.password[0]取的就是gold,#parameters.password[1]=jsmart;
(3.)%{A}所有基于这种形式的内容,都会被解析并到值栈中求值,也就是会到Value Stack中查找A所代表的值;如果你想A被当作字符串原样传递,那么可以这样表示%{‘A’},当然你直接使用A有的时候也是可以的,但为了通用性,建议使用%{‘A’},以免产生不必要的麻烦。
(4.)OGNL操作集合,例如值栈中存在map,我们可以这样访问map[‘a’],表示访问Map中key值为a的value值是多少,map.size访问大小等等。
(5.)OGNL访问类中的静态变量和静态方法:@完整类名@属性名,@完整类名@方法名,例如:
Package net.ilkj.ognl
Public Class A{
Public static final String a=”1”;
Public static String findA()
{
Return “2”;
}
,我们就可以在页面上使用<:sproperty value=”@net.ilkj.ognl.A@a”/>尽心输出!
从上面可以看出,在Struts2中使用OGNL,可以简单看作就是对象.属性。
文章来源:wiki
分享到:
相关推荐
OGNL(Object-Graph Navigation Language,对象图导航语言)是一种强大的表达式语言,常用于Java应用,特别是Struts2框架中。它允许开发者通过简洁的语法来访问和操作对象图,包括属性、方法调用以及集合操作。在...
OGNL(Object-Graph Navigation Language)是一种强大的表达式语言,用于获取和设置Java对象的属性。它是Struts2框架中的默认表达式语言,同时也被广泛应用于其他Java环境中。OGNL支持丰富的语法特性,能够方便地...
Struts2是一个流行的Java web开发框架,其核心特性之一就是使用OGNL(Object-Graph Navigation Language)作为表达式语言,并提供了丰富的标签库来简化视图层的开发。本篇文章将详细探讨Struts2中的OGNL表达式语言...
OGNL (Object-Graph Navigation Language) 是一种强大的表达式语言,用于获取和设置 Java 对象的属性。它最初是由 John Rose 和 Luke Blanshard 开发,并被广泛应用于多种框架中,尤其是在 Spring Expression ...
Struts 2默认的表达式语言是OGNL,原因是它相对其它表达式语言具有下面几大优势: 1、 支持对象方法调用,如xxx.doSomeSpecial(); 2、支持类静态的方法调用和值访问,表达式的格式为@[类全名(包括包路径)]@...
在Struts2框架中,默认使用的表达式语言即为OGNL,这是因为相比于其他表达式语言(如JSTL、Groovy和Velocity等),OGNL具有以下显著优点: 1. **支持对象方法调用**:OGNL允许直接调用对象的方法,而无需显式创建...
NULL 博文链接:https://huguifuture.iteye.com/blog/761843
在Struts2中,OGNL(Object-Graph Navigation Language)是一种强大的表达式语言,用于数据绑定和表示层的数据交换。这篇博客文章可能详细探讨了如何在Struts2中使用OGNL来传递和操作数据。 OGNL是Struts2的核心...
其中,OGNL(Object-Graph Navigation Language)是Struts2中的核心表达式语言,用于数据绑定和表示层的数据操作。这篇深入学习的文章主要探讨了OGNL表达式的原理和使用。 首先,我们来理解一下OGNL是什么。OGNL是...
struts2 中 OGNL表达式的使用struts2 中 OGNL表达式的使用
在Struts2中,OGNL(Object-Graph Navigation Language)是一种强大的表达式语言,用于在视图层和模型层之间进行数据绑定和表达式计算。本文将深入探讨如何在Struts2中有效地使用OGNL表达式。 首先,OGNL是Struts2的...
### Struts2的类型转换与OGNL表达式语言 #### 一、Struts2的类型转换类型 在Struts2框架中,类型转换是处理用户输入数据时的一个关键环节。Struts2支持多种内置的数据类型转换,同时也允许开发人员自定义类型转换...
OGNL表达式语言: 相对EL表达式,它提供了平时我们需要的一些功能,如: ? 支持对象的方法调用 ,如 xxx.sayHello(); ? 支持类静态方法调用和值的访问,表达式的格式为@[类全名]@[方法名|值名],例如:@java....
而OGNL(Object-Graph Navigation Language)是Struts2中使用的一种强大的表达式语言,用于在视图层和模型层之间传递数据。在本案例中,我们将深入探讨OGNL表达式的用法及其在Struts2中的应用。 首先,OGNL是一种...
OGNL(Object-Graph Navigation Language)是一种强大的表达式语言,常用于Java应用程序,特别是Web开发中的框架,如Struts 2。它允许开发者简洁、直观地访问和操作对象图,即对象之间的关联关系。理解并熟练掌握...
OGNL(Object-Graph Navigation Language)是一种强大的表达式语言,用于获取和设置Java对象的属性。在本资源“OGNL表达式2讲”中,我们将深入探讨OGNL的使用,特别是针对各种常用的标签和实际应用案例。这个压缩...
**表达式语言(EL)与OGNL概述** 表达式语言(EL)是用于在Java应用程序中简洁地访问和操作对象属性的一种方式。它允许开发者通过简单的语法来读取和设置对象的属性,调用方法,以及执行其他面向对象的操作。在Java EE...
Struts2 OGNL表达式是Java Web开发中一个重要的概念,它是一种强大的对象图形导航语言(Object-Graph Navigation Language)。在Struts2框架中,OGNL被广泛用于视图层,作为数据绑定的主要手段,使得开发者能够方便...
OGNL(Object-Graph Navigation Language)是一种强大的表达式语言,它被Struts2框架广泛用于视图层与模型层之间的数据绑定和交互。通过OGNL,开发者可以轻松地访问和操作对象图中的任何属性,实现灵活的数据传递。 ...
Struts2 是一个流行的Java Web框架,它广泛使用OGNL(Object-Graph Navigation Language)作为其默认的表达式语言。OGNL 提供了一种强大的方式来访问和操作Java对象的属性,使得在视图层的表示更加简洁和高效。本文...