标准ONGL 和 struts 2中的ONGL

 

一、ONGL符号说明

#用途:

1.用于访问ONGL中Context中非根对象.

  例如:#session;#applicatoin;#parameter;#attr;#action

2.用于集合操作的投影和选择.

  例如:books.{?#this.price<35}.{bookName}。表示选择价格小于35的所有书籍

       其中?代表将所有符合条件的书籍PO

       #this仅仅用于代表当前迭代的元素。
       {}表示挑选出来组成一个子集合。
       ^代表把符合条件的第一个元素提取出来,
       而$代表将符合条件的最后一个元素提取出来。
       {bookName}用于将所有的书籍名称挑选出来组,成一个String的List。
3.构建map对象.#{"key1":"value1","key2":"map2"..}
4. 其他使用场景:#books[1]、 #foo["key"]

 

%用于用途:

1.计算ognl表达式,将普通字符串转换为ognl表达式进行计算:

   例如:<s:textfield value="%{#key.adminBean.name}">

         %{books[1]}


$主要用途:
1.在struts的配置文件srtruts.xml中引用数据:
<action name="login" class="com.sz.login" method="login">
<result name="success">index.jsp?username=${username}&password=${password}</result>
</action>

${username}、${password}表达式用于从ValueStack元素里获取响应属性值,访问过loginAction后,login就被放到vs的顶端,而vs又是OgnlContext的roo,所有就可以直接访问。

2.在struts的校验文件中,或国际化资源文件中
<field name="price">
<validator type="int">
<param name="min">50</param>
<param name="max">500</param>
<message>the price must between ${min} and ${max}</message>
</validator>
</field>

 

二、strutsOgnl功能点:

1.支持字段访问
   %{username}
2.支持方法调用(包括静态方法调用)
   %{@@max(20,50)} %{getUsername()} == %{username}  %{#manager.getWelcomeInfo()}
3.支持数组、集合、map等对象数据的访问
   %{foo[1]} %{infoMap["kk"]}
4.支持投影、选择操作
     %{books.{?#this.price<35}.{bookName}}
5.支持lambda表达式 :[....],定义一个函数,并通过,调用该函数
   #fact=:[#this<35?#this:#this*#fact(#this-1)], #fact(50)

 

 

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值