strut2 #、%和$三个符号的用法

本文深入探讨了OGNL(Object-Graph Navigation Language)作为强大的表达式语言,如何通过简化属性访问、支持运算符和增强代码可读性来优化Web开发流程。重点介绍了OGNL在访问上下文对象、构造Map、过滤和投影集合等方面的强大功能,并通过实例展示了其在国际化资源文件和Struts2框架配置中的应用。

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是一种功能很大的表达式语言,熟悉它可以使我们的开发变得更快捷。

评论 3
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值