Struts2 OGNL详解:从基础到高级应用
需积分: 10 105 浏览量
更新于2024-09-09
收藏 228KB DOCX 举报
"本文介绍了Struts2中OGNL的概念、用法和原理,包括其与EL表达式的区别,以及OGNL上下文(ContextMap)和ActionContext对象的作用。"
在Struts2框架中,OGNL(Object-Graph Navigation Language)是一种强大的表达式语言,用于访问和操作对象图。它允许开发者使用简单的“对象.属性”语法来调用对象的方法和访问属性,如示例中的`s.name`。OGNL不仅能够用来获取数据,还能用于设置数据,这在Struts2的标签中尤为明显。
1. OGNL的基本用法是通过`.`操作符来访问对象的属性和方法。例如,如果`Students`是一个已初始化并填充了数据的列表,我们可以在JSP中直接使用`s.name`来获取学生对象的名称。
2. EL(Expression Language)表达式常用于Java服务器页面(JSP),其特点是使用`${}`包裹,主要用于读取数据,不支持写入数据。EL表达式具有容错性,不会抛出空指针异常、字符串拼接错误或数组下标越界异常。
3. OGNL则更加强大,它可以被嵌入到Struts2的标签中,用于读取和写入数据。它支持多种操作,包括:
- 基本用法:直接访问对象属性。
- 转换为字符串:通常需要Struts2标签帮助。
- 访问对象的普通方法。
- 访问静态方法和静态属性。
- 操作List集合和Map集合。
4. 尽管OGNL功能强大,但EL表达式仍然有其用途,尤其是在获取值栈中的数据。EL表达式首先尝试从域对象中获取值,如果找不到,则会查找值栈,并将找到的值放入域对象中。
5. OGNL的上下文,即ContextMap,是Struts2中存储数据的主要容器,其他容器都位于其内部。ContextMap是一个Map结构,键是String类型,值是Object类型,封装了请求所需的所有数据。
6. ActionContext对象是Struts2提供的一个工具类,用于操作ContextMap。每个HTTP请求都会创建一个新的ActionContext对象,并将其与当前线程绑定。这样,在整个请求处理过程中,ActionContext提供了对请求数据的访问。
OGNL是Struts2框架中不可或缺的一部分,它简化了对象属性和方法的访问,增强了动态数据处理的能力。同时,ActionContext和ContextMap则提供了管理和访问请求数据的机制,确保了Struts2框架的高效运行。
2009-04-10 上传
2019-04-02 上传
2014-12-20 上传
2019-06-01 上传
2010-08-27 上传
点击了解资源详情
点击了解资源详情
点击了解资源详情
臭臭在奔跑
- 粉丝: 8
- 资源: 2
最新资源
- 平尾装配工作平台运输支撑系统设计与应用
- MAX-MIN Ant System:用MATLAB解决旅行商问题
- Flutter状态管理新秀:sealed_flutter_bloc包整合seal_unions
- Pong²开源游戏:双人对战图形化的经典竞技体验
- jQuery spriteAnimator插件:创建精灵动画的利器
- 广播媒体对象传输方法与设备的技术分析
- MATLAB HDF5数据提取工具:深层结构化数据处理
- 适用于arm64的Valgrind交叉编译包发布
- 基于canvas和Java后端的小程序“飞翔的小鸟”完整示例
- 全面升级STM32F7 Discovery LCD BSP驱动程序
- React Router v4 入门教程与示例代码解析
- 下载OpenCV各版本安装包,全面覆盖2.4至4.5
- 手写笔画分割技术的新突破:智能分割方法与装置
- 基于Koplowitz & Bruckstein算法的MATLAB周长估计方法
- Modbus4j-3.0.3版本免费下载指南
- PoqetPresenter:Sharp Zaurus上的开源OpenOffice演示查看器