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

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

你可能感兴趣的:(struts,session,application,url,语言,Parameters)