OGNL是一种用于访问和设置对象数据的强大表达式语言,它可以自动导航对象图的结构,实现字段类型转换,调用对象方法,访问类的静态成员和方法。
一、为什么使用OGNL
它提供了比jsp内置表达式语言更为强大的功能,例如类型转换功能、静态或实例方法调用、跨集合投影、动态lambda表达式定义等。
二、OGNL基础
1、OGNL上下文的根对象
2、OGNL表达式
集合操作、投影、选择等
三、struts在OGNL基础上的增强
1、值栈:[N]语法、top关键字、访问静态成员
2、struts的命名对象
parameters、request、session、application、attr
四、与jsp2.1的冲突
jsp2.1中#符号已经被jsp内置表达式语言(el)使用,若在ognl中使用#操作符会导致一些问题,需要在jsp容器中禁止使用jsp el。通过在web.xml中添加jsp-config元素配置
<jsp-config>
<jsp-property-group>
<url-pattern>
*.jsp
</url-pattern>
<el-ignored>true</el-ignored>
</jsp-property-group>
</jsp-config>
分享到:
相关推荐
OGNL与Struts2的结合使得开发者能够轻松地在视图层使用表达式来访问模型中的数据。 #### OGNL的基本概念 - **OGNL表达式**:是一种简洁的语法结构,用来访问和设置Java对象的属性。 - **根对象(Root Object)**:...
OGNL (Object Graph Navigation Language) 是一种强大的表达式语言,被广泛应用于Struts2框架中,用于在Action对象和视图之间传递数据。它允许开发者直接通过字符串表达式来访问和操作Java对象的属性,包括静态方法...
5. **OGNL与Struts2的集成**:Struts2是如何将OGNL与Action、ValueStack和结果视图模板结合的。 6. **OGNL的异常处理**:遇到错误时,如何理解和解决OGNL表达式抛出的异常。 7. **最佳实践**:如何优化OGNL的使用...
Struts2与OGNL的结合** 在Struts2中,OGNL作为默认的表示层语言,用于在Action和视图之间传递数据。Action类的属性可以直接在JSP页面中通过OGNL表达式引用,如`${user.name}`。此外,OGNL也用于动态方法调用,例如 ...
6. **OGNL与Struts2的集成**: - 在Struts2的拦截器链中,`ognl.OgnlValueStack`拦截器负责处理OGNL表达式的计算和执行。 - `Result`类使用OGNL来设置模型数据到视图模板。 理解Struts2 OGNL的源码有助于我们更...
其中,OGNL(Object-Graph Navigation Language)是Struts2中的核心表达语言,用于在视图层与模型层之间传递数据。在深入理解OGNL的源码之前,我们首先需要了解OGNL的基本概念和用法。 OGNL是一种强大的表达式语言...
同时,由于OGNL与Struts2的拦截器机制紧密结合,开发者可以通过自定义拦截器来扩展其功能,如安全过滤、数据转换等。 然而,OGNL的强大也带来了一些安全问题。在Struts2的早期版本中,存在著名的OGNL注入漏洞,攻击...
三、OGNL与Struts2的结合 1. 表单绑定:Struts2可以自动将表单提交的数据映射到Action类的属性,这背后就是OGNL的功劳。 2. 动态方法调用:通过OGNL,Struts2可以动态地调用Action类的方法,如`execute()`,无需...
OGNL(Object-Graph Navigation Language)是一种强大的表达式语言,常用于Java应用程序,特别是与Struts2框架一起使用。它允许程序开发者通过简洁的语法来访问和操作对象的属性,执行复杂的逻辑,以及动态地构建...
在Struts2中,OGNL被广泛应用于Action类与视图层之间的数据绑定和处理。具体应用场景包括但不限于: - **数据绑定**:利用OGNL表达式,可以将表单提交的数据自动绑定到对应的Action类中。 - **视图渲染**:在JSP或...
这个"Struts2 OGNL示例(Maven项目)"提供了使用OGNL与Struts2集成的实例,帮助开发者更好地理解和应用这一强大的特性。 首先,让我们了解什么是OGNL。OGNL是一种强大的表达式语言,允许我们访问和修改对象图中的...
7. **OGNL与Struts2的结合**:在Struts2中,Action类的属性通过OGNL与JSP页面进行数据交换。Action的结果可以通过OGNL表达式动态决定,例如,根据某个条件跳转到不同的页面。 8. **OGNL表达式在模板中的使用**:在...
在Struts2中,OGNL(Object-Graph Navigation Language)是一种强大的表达式语言,用于获取和设置对象属性,它在Struts2的核心组件中扮演着至关重要的角色。本篇文章将深入探讨OGNL在Struts2.0中的应用及其重要性。 ...
4. **与Struts2的集成**:OGNL可以无缝集成到Struts2的Action、拦截器等组件中。 5. **动态性**:OGNL表达式可以在运行时动态解析。 #### 二、OGNL在Struts2中的使用方式 OGNL在Struts2中主要用于页面显示数据、...
OGNL与Struts2的结合** 在Struts2框架中,OGNL作为默认的表示层语言,负责视图和模型之间的数据交换。Struts2的Action类的属性可以直接通过OGNL表达式在JSP页面中访问。例如,`${myAction.property}`会尝试获取...
#### 三、OGNL与Struts2中的上下文环境 OGNL表达式在执行时需要一个上下文环境(Context),这个上下文环境通常是一个Map结构。在Struts2中,具体的上下文环境是`ActionContext`。`ActionContext`中的结构如下: - *...
通过查看源代码,你可以看到OGNL如何与Struts2的其他组件协同工作,如Action、Interceptor和Result。 总之,OGNL是Struts2中的关键工具,使开发者能够灵活地处理数据和控制流程。通过实践这个“Struts2 OGNL用法...
OGNL(Object-Graph Navigation Language),大概可以理解为:对象图形化导航语言。是一种可以方便地操作对象属性的开源表达式语言。OGNL有如下特点: 1、支持对象方法调用,形式如:objName.methodName(); 2、支持...
OGNL与Struts2框架紧密关联,它是Struts2的核心组件之一。Struts2允许开发者使用OGNL表达式来绑定Action类的属性到视图层,实现数据传递。通过OGNL,开发者可以轻松地从请求参数中获取和设置Action的属性,同时也...
视频课程`41_尚学堂马士兵_Struts2_OGNL_6.avi`、`42_尚学堂马士兵_Struts2_OGNL_7.avi`、`43_尚学堂马士兵_Struts2_OGNL_8.avi`可能涵盖了OGNL的更多高级特性和实战应用,包括但不限于OGNL与Struts2的整合、安全...