"本文主要讲解了OGNL表达式的基本语法和用法,包括#、%和$三种特殊符号的功能,并提供了示例进行说明。" OGNL(Object-Graph Navigation Language)是一种强大的表达式语言,常用于Java应用,尤其是Struts2框架中,用于访问和操作对象的属性。在OGNL表达式中,#、%和$符号扮演着关键角色。 1. # 符号: - 访问非根对象属性:#符号用于访问值栈中的非根对象,例如#session.msg,这相当于通过ActionContext来获取session中的属性。 - 过滤和投影集合:如persons.{?#this.age>20},此表达式将筛选出集合persons中年龄大于20的元素。 - 构造Map:#{'foo1':'bar1','foo2':'bar2'},这个表达式创建了一个Map,键值对为'foo1'->'bar1'和'foo2'->'bar2'。 2. % 符号: - 字符串类型属性值计算:在OGNL表达式中,如果值的属性是字符串类型,%符号用于计算表达式值。例如,<s:property value="%{#foobar['foo1']}"/>会正确显示为'bar1',而没有%符号则会原样输出表达式。 3. $ 符号: - 国际化资源文件中的引用:在国际化资源文件中,$符号用于引用OGNL表达式,如reg.agerange=国际化资源信息:年龄必须在${min}到${max}之间,这里的${min}和${max}可以是动态计算的值。 - Struts2配置文件中的引用:在Struts2的配置文件中,$符号可以用来插入OGNL表达式,比如<param name="mi">${min}</param>,这样配置可以动态设置最小值。 除了这些基本用法,OGNL还支持更复杂的操作,如链式访问、数组和集合操作、方法调用等。例如,你可以使用OGNL表达式如`person.name`来访问`person`对象的`name`属性,或者`list[0]`来访问列表的第一个元素。OGNL还能处理逻辑运算、条件表达式以及嵌套表达式等。 熟练掌握OGNL表达式对于开发基于Struts2或其他使用OGNL的Java应用程序至关重要,因为它提供了灵活的数据访问和操作能力,使得代码更加简洁且功能强大。通过深入学习和实践,你可以更好地利用OGNL来提升你的应用性能和可维护性。
![](https://csdnimg.cn/release/download_crawler_static/12771858/bg1.jpg)
![zip](https://img-home.csdnimg.cn/images/20210720083736.png)
![-](https://csdnimg.cn/download_wenku/file_type_column_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://profile-avatar.csdnimg.cn/default.jpg!1)
- 粉丝: 11
- 资源: 904
我的内容管理 收起
我的资源 快来上传第一个资源
我的收益
登录查看自己的收益我的积分 登录查看自己的积分
我的C币 登录后查看C币余额
我的收藏
我的下载
下载帮助
![](https://csdnimg.cn/release/wenkucmsfe/public/img/voice.245cc511.png)
会员权益专享
最新资源
- 利用迪杰斯特拉算法的全国交通咨询系统设计与实现
- 全国交通咨询系统C++实现源码解析
- DFT与FFT应用:信号频谱分析实验
- MATLAB图论算法实现:最小费用最大流
- MATLAB常用命令完全指南
- 共创智慧灯杆数据运营公司——抢占5G市场
- 中山农情统计分析系统项目实施与管理策略
- XX省中小学智慧校园建设实施方案
- 中山农情统计分析系统项目实施方案
- MATLAB函数详解:从Text到Size的实用指南
- 考虑速度与加速度限制的工业机器人轨迹规划与实时补偿算法
- Matlab进行统计回归分析:从单因素到双因素方差分析
- 智慧灯杆数据运营公司策划书:抢占5G市场,打造智慧城市新载体
- Photoshop基础与色彩知识:信息时代的PS认证考试全攻略
- Photoshop技能测试:核心概念与操作
- Photoshop试题与答案详解
![](https://img-home.csdnimg.cn/images/20220527035711.png)
![](https://img-home.csdnimg.cn/images/20220527035111.png)
![](https://csdnimg.cn/release/wenkucmsfe/public/img/green-success.6a4acb44.png)