OGNL表达式在Struts2中的应用详解
需积分: 49 81 浏览量
更新于2024-09-10
收藏 2KB TXT 举报
OGNL表达式详解
OGNL(Object-Graph Navigation Language)是一种强大的表达式语言,广泛应用于Struts2框架中。它允许开发者在视图层(View)中访问和操作模型层(Model)的数据。OGNL提供了丰富的语法和功能,能够满足复杂的业务需求。
ValueStackContents
在Struts2中,ValueStack是一个核心概念,它是一个存储了Action对象、模型对象和其它数据的栈结构。OGNL表达式可以通过ValueStack来访问和操作这些数据。例如:
* `<s:property value="act">`:访问当前Action对象的属性。
* `<s:property value="user.userName">`:访问当前用户对象的userName属性。
* `<s:property value="cat.dog.name">`:访问当前对象的cat属性下的dog属性下的name属性。
OGNL语法
OGNL语法非常丰富,支持多种操作符和函数。例如:
* `@@`:调用静态方法,例如 `<s:property value="@max(2,3)">`。
* `.`:访问对象的属性,例如 `<s:property value="user.userName">`。
* `[]`:访问集合的元素,例如 `<s:property value="userList[1]">`。
* `.`:调用对象的方法,例如 `<s:property value="m()">`。
集合操作
OGNL支持多种集合操作,例如:
* List: `<s:property value="userList">`,访问一个List对象。
* List中的元素访问: `<s:property value="userList[1]">`,访问List对象的第一个元素。
* List中的属性访问: `<s:property value="userList.{age}">`,访问List对象中每个元素的age属性。
Map操作
OGNL也支持Map操作,例如:
* `<s:property value="userMap">`,访问一个Map对象。
* `<s:property value="userMap.key1">`,访问Map对象的key1键对应的值。
* `<s:property value="userMap.keys">`,访问Map对象的所有键。
* `<s:property value="userMap.vaule">`,访问Map对象的所有值。
其它功能
OGNL还提供了许多其它功能,例如:
* 静态方法调用: `<constant name="struts.ognl.allowStaticMethodAccess" value="true">`,允许调用静态方法。
* 对象创建: `<s:property value="new com.example.User()">`,创建一个新的对象。
OGNL表达式语言提供了强大的功能和灵活的语法,能够满足复杂的业务需求,在Struts2框架中发挥着重要作用。
2013-01-09 上传
2013-10-25 上传
2021-10-11 上传
点击了解资源详情
点击了解资源详情
点击了解资源详情
点击了解资源详情
真心_无语
- 粉丝: 0
- 资源: 1
最新资源
- LSketch-开源
- fable-compiler.github.io:寓言网站
- yomama:我为什么做这个
- tomcat安装及配置教程.zip
- detailed:使用 ActiveRecord 在单表和多表继承之间妥协
- nuaa-sql-bigwork-frontend::file_cabinet:NUAA 2018 数据库实验 - 学生管理系统 - 前端 - 基于 React + Antd + Electron
- CityNews:我的htmlcss研究中的另一个项目
- C64-Joystick-Adapter:一个简单的设备,可以通过USB(使用Arduino Pro Micro)将两个Commodore 64游戏杆连接到现代计算机。 总体目标是能够在模拟器中使用老式游戏杆
- pyg_lib-0.2.0+pt20cpu-cp311-cp311-linux_x86_64whl.zip
- webharas-api
- nuaa-sql-bigwork-backend::file_cabinet:NUAA 2018 数据库实验 - 学生管理系统 - 后端 - 基于 nodejs + express
- ANNOgesic-0.7.3-py3-none-any.whl.zip
- MyPullToRefresh:自己保存的下拉刷新控件
- nekomiao123:我的自述文件
- neural_stpp:用于时间戳异类数据的深度生成建模,可为多种时空域提供高保真模型
- CCeButtonST v1.2