`

OGNL“valueStack”

    博客分类:
  • java
阅读更多

详细例子:http://www.iteye.com/wiki/Struts2_leader_guide/1990-struts_guide_13

 

OGNL是Object-Graph Navigation Language的缩写,它是一种功能强大的表达式语言(Expression Language,简称为EL),通过它简单一致的表达式语法,可以存取对象的任意属性,调用对象的方法,遍历整个对象的结构图,实现字段类型转化等功能。它使用相同的表达式去存取对象的属性。
  WebOGNL是一种构建以servlet为基础的组件化应用的web表现层框架,它的模板语言建立在OGNL表达式的基础上,具有别的web层框架不能匹敌的适应性。
  OGNL可以让我们用非常简单的表达式访问对象层,例如,当前环境的根对象为user1,则表达式person.address[0].province
  可以访问到user1的person属性的第一个address的province属性。
  这种功能是模板语言的一个重要补充,象jsp2.0,velocity,jelly等等,都有类似的功能,但是ognl比它们完善得多,而且以一个独立的lib出现,方便我们构建自己的框架。
  webwork2和现在的Struts2.x中使用OGNL取代原来的EL来做界面数据绑定,所谓界面数据绑定,也就是把界面元素(例如一个textfield,hidden)和对象层某个类的某个属性绑定在一起,修改和显示自动同步。
  和struts1.x的formbean相比,这样做的好处非常明显:在webwork中不需要为每个页面专门写formbean,可以直接利用对象层的对象。例如在对象设计中,我们的User和Person是分开的,而一个注册用户界面需要填写两者的内容,在webwork中,就可以保持后台的对象结构,把属于用户属性的界面元素用user.person.xxx绑定,把属于账号属性的界面元素用user.xxx绑定。

分享到:
评论

相关推荐

    Struts中的ognl和valueStack

    深入讲解Struts中的ognl和valueStack

    Struts用的ognl和valueStack(vs)实例

    在Struts中,OGNL(Object-Graph Navigation Language)和Value Stack(VS)是两个核心概念,它们对于理解Struts的工作原理至关重要。 **OGNL:对象图导航语言** OGNL是一种强大的表达式语言,它允许在对象图中进行...

    s20505_valueStack_OGNL

    在给定的压缩包文件“s20505_valueStack_OGNL”中,我们关注的核心知识点是Struts2中的OGNL(Object-Graph Navigation Language)和相关标签的使用。OGNL是Struts2默认的表达式语言,用于在视图层和控制器层之间传递...

    黑暗浪子写的struts2讲义.pdf

    四、ValueStack与OGNL ValueStack是Struts2中用于存储Action属性和结果数据的数据结构,它简化了视图与模型之间的数据传递。OGNL(Object-Graph Navigation Language)是Struts2默认的表达式语言,用于在ValueStack...

    struts2.0动画教程

    五、ValueStack与OGNL ValueStack是Struts2中用于存储Action属性和ActionContext的容器。OGNL(Object-Graph Navigation Language)是Struts2的默认表达式语言,用于在Action、ValueStack和View之间传递数据。开发者...

    很全面的struts2_ognl总结

    OGNL(Object-Graph Navigation Language)是一种基于 Java 的表达式语言,Struts2 框架中使用 OGNL 来访问和操作 ValueStack 中的对象。在 Struts2 中,OGNL 是一个强大的工具,允许开发者访问和操作 ValueStack 中...

    ognl表达式 ognl表达式

    在Struts2中,OGNL的核心组件之一是`ValueStack`,它充当了OGNL表达式的数据源。`ValueStack`是一个存储数据的栈结构,包含了所有的模型对象以及请求、会话和应用范围的数据。开发者可以通过EL表达式直接访问`...

    struts2.0中的ognl

    4. 使用`ValueStack`管理对象,避免过多的内存消耗。 总之,OGNL在Struts2.0中起着至关重要的作用,它极大地简化了数据绑定和视图渲染的过程,但同时也需要注意其潜在的安全风险。理解和熟练运用OGNL,将有助于提升...

    ValueStack使用参考

    2. **Ognl表达式**:ValueStack主要使用Object-Graph Navigation Language(OGNL)来访问和操作栈中的对象属性。OGNL是一种强大的表达式语言,允许动态地获取或设置对象的属性。 3. **ActionContext**:...

    OGNL百度百科OGNL百度百科

    在 Struts2 中,OGNL 需要与 ValueStack 进行交互,以方便在 JSP 页面中直接通过 EL 方式访问 ValueStack 中的对象。ValueStack 是一个保存所有请求数据的对象栈,它包含了一个或多个根对象。 例如: - `${foo}` ...

    ognl的源码

    OGNL通过ValueStack查找和操作对象。 - **ExpressionParser**:负责解析OGNL表达式,生成AST。 - **Context**:持有与表达式求值相关的环境信息,如变量、作用域等。 - **ObjectMapper**:负责对象与OGNL表达式...

    学习OGNL在Struts2中工作原理

    在Struts2中,OGNL的执行环境由ValueStack提供。ValueStack是一个特殊的对象容器,它可以存储多个对象,并且支持通过OGNL表达式来访问这些对象。 - **ValueStack的作用**: - 作为OGNL的根对象,提供了一个统一的...

    ognl.rar_OGNL API_struts2 ognl api_struts2帮助文档

    5. **OGNL与Struts2的集成**:Struts2是如何将OGNL与Action、ValueStack和结果视图模板结合的。 6. **OGNL的异常处理**:遇到错误时,如何理解和解决OGNL表达式抛出的异常。 7. **最佳实践**:如何优化OGNL的使用...

    OGNL访问OGNL上下文和Action上下文Struts2rarfdsafsdfasdfas

    Action上下文中的ValueStack是存放Action实例和其它对象的地方,它支持OGNL表达式的查找和操作。 **OGNL标签的使用** 在Struts2中,OGNL标签允许我们在JSP页面上直接使用OGNL表达式来访问和显示数据。以下是一些...

    表达式与言EL和OGNL

    **表达式语言(EL)与OGNL概述** 表达式语言(EL)是用于在Java应用程序中简洁地访问和操作对象属性的一种方式。它允许开发者通过简单的语法来读取和设置对象的属性,调用方法,以及执行其他面向对象的操作。在Java EE...

    OGNL jar包及源码

    2. `ValueStack`:这是OGNL的核心数据结构,用于存储和管理对象,支持栈顶操作,便于表达式的处理。 3. `Context`类:提供了表达式上下文的实现,管理变量和对象的映射。 4. `ObjectPropertyAccessor`:实现了对Java...

    ognl jar包源码

    - `ValueStack`类:它是一个数据结构,用于存储和管理在表达式中引用的对象,是Struts2中非常重要的组件。 - `ObjectPropertyAccessor`和`MapPropertyAccessor`:这些类实现了对对象属性的访问,使得OGNL可以动态地...

    struts2中OGNL的一些概念及原理说明

    ### Struts2中OGNL的概念及原理说明 #### 一、OGNL表达式的基本用法与特点 **OGNL**,即**Object Graphic Navigation Language**(对象图导航语言),是Struts2框架中用于处理对象及其属性的强大工具之一。通过...

    struts2对Ognl的封装--PropertyAccessor

    - Struts2中OGNL与Action、ValueStack的关系。 - OGNL的安全性问题,如OGNL注入攻击,以及如何防范。 在压缩包文件`struts-ognl.asta`中,可能包含了一些示例或测试用例,用于演示Struts2中PropertyAccessor的使用...

Global site tag (gtag.js) - Google Analytics