OGNL(Object-Graph Navigation Language),可以方便地操作对象属性的开源表达式语言;
表达式语言主要有以下几大好处:
1. 避免(MyType) request.getAttribute()和myBean.getMyProperty()之类的语句,使页面更简洁;
2. 支持运算符(如+-*/),比普通的标志具有更高的自由度和更强的功能;
3. 简单明了地表达代码逻辑,使用代码更可读与便于维护。
#的用途
(1)访问OGNL上下文中的parameters、request、session、application和attr对象。
(2)构造Map,如:#{key1:value1,key2:value2,key3:value3,......}
(3)用于过滤和投影(projecting)集合, 取得集合中的子集,如:
books.{?#this.price > 20} 符合条件的所有元素
books.{^#this.price > 20} 符合条件的第一个元素
books.{$#this.price > 20} 符合条件的最后一个元素
%的用途
在标志的属性为字符串类型时,计算OGNL表达式的值。例如在Ognl.jsp中加入以下代码:
<hr />
<h3>%的用途</h3>
<p><s:url value="#foobar['foo1']" /></p>
<p><s:url value="%{#foobar['foo1']}" /></p>
$有两个主要的用途
$符号主要有两个方面的用途。
在国际化资源文件中,引用OGNL表达式,例如国际化资源文件中的代码:reg.agerange=国际化资源信息:年龄必须在${min}同${max}之间。
在Struts 2框架的配置文件中引用OGNL表达式,例如下面的代码片断所示:
<validators>
<field name=”intb”>
<field-validator type=”int”>
<param name=”min”>10</param>
<param name=”max”>100</param>
<message>BAction-test校验:数字必须为${min}为${max}之间!</message>
</field-validator>
</field>
</validators>
总结: OGNL是一种功能很大的表达式语言,熟悉它可以使我们的开发变得更快捷。
本文深入探讨了OGNL(Object-Graph Navigation Language)作为强大的表达式语言,如何通过简化属性访问、支持运算符和增强代码可读性来优化Web开发流程。重点介绍了OGNL在访问上下文对象、构造Map、过滤和投影集合等方面的强大功能,并通过实例展示了其在国际化资源文件和Struts2框架配置中的应用。
628

被折叠的 条评论
为什么被折叠?



