理解STRUTS2标签:#,$,%的OGNL用法解析
需积分: 11 189 浏览量
更新于2024-09-15
收藏 56KB DOC 举报
"STRUTS2标签中符号_,$,%的用法示例"
在STRUTS2框架中,标签的使用极大地简化了视图层的开发,而#、$和%这三个符号在STRUTS2的OGNL(Object-Graph Navigation Language)表达式中扮演着重要的角色。本文将详细解释这三种符号的用法。
1. # 符号
#符号在OGNL表达式中主要用于以下三种情况:
a. 访问非根对象的属性:在Struts2中,值栈被默认视为根对象,可以直接访问Action上下文中的属性。但当需要访问其他非根对象,如Session或Request中的属性时,需要使用#前缀。例如,`#session.msg`表示获取ActionContext中Session对象的msg属性。
b. 过滤和投影集合:在处理集合时,#可以用来筛选或提取满足特定条件的元素。如`persons.{?#this.age>20}`会返回persons集合中年龄大于20的对象。
c. 构造Map:`#{'foo1':'bar1', 'foo2':'bar2'}`创建了一个Map对象,键值对分别为'foo1'和'bar1','foo2'和'bar2'。
2. % 符号
%符号主要用在字符串类型的值需要参与计算的场合。在STRUTS2标签中,如果你的属性值是一个OGNL表达式,且需要将其作为字符串处理,就需要使用%符号。例如,在`s:url`标签中,`%{#foobar['foo1']}`会确保`#foobar['foo1']`的值被正确地解析为字符串,而`#foobar['foo1']`直接使用可能无法正确处理。
3. $ 符号
$符号有两个主要的应用场景:
a. 在国际化资源文件中,$符号用于引用OGNL表达式。例如,`reg.agerange = 年龄必须在${min}至${max}之间`,这里的`${min}`和`${max}`会在运行时根据实际值替换。
b. 在Struts2的配置文件中,$同样用于引用OGNL表达式。比如在`<validators>`配置中,`<message>BAction-test校验:数字必须为${min}为${max}之间!</message>`,这里的`${min}`和`${max}`会根据配置的参数值动态填充。
总结起来,#、$和%是STRUTS2 OGNL表达式中的关键符号,它们帮助开发者灵活地处理对象属性、集合操作以及字符串和表达式的结合。了解并熟练掌握这些符号的用法,能显著提升开发效率,使得STRUTS2应用的视图层更加简洁和高效。
2010-12-16 上传
2019-07-28 上传
2011-09-26 上传
点击了解资源详情
点击了解资源详情
2020-08-31 上传
2010-07-30 上传
2009-10-23 上传
2009-10-21 上传
dechao1993
- 粉丝: 0
- 资源: 7
最新资源
- Raspberry Pi OpenCL驱动程序安装与QEMU仿真指南
- Apache RocketMQ Go客户端:全面支持与消息处理功能
- WStage平台:无线传感器网络阶段数据交互技术
- 基于Java SpringBoot和微信小程序的ssm智能仓储系统开发
- CorrectMe项目:自动更正与建议API的开发与应用
- IdeaBiz请求处理程序JAVA:自动化API调用与令牌管理
- 墨西哥面包店研讨会:介绍关键业绩指标(KPI)与评估标准
- 2014年Android音乐播放器源码学习分享
- CleverRecyclerView扩展库:滑动效果与特性增强
- 利用Python和SURF特征识别斑点猫图像
- Wurpr开源PHP MySQL包装器:安全易用且高效
- Scratch少儿编程:Kanon妹系闹钟音效素材包
- 食品分享社交应用的开发教程与功能介绍
- Cookies by lfj.io: 浏览数据智能管理与同步工具
- 掌握SSH框架与SpringMVC Hibernate集成教程
- C语言实现FFT算法及互相关性能优化指南