struts2 Ongl使用记录

:D struts2 ognl表达式使用以及#、$ 、%使用方法:

#拥有几种用途:
1.用于访问ActionContent相关属性,如#parameters.username[0] / #session.username / #application.password / #attr.username.
2.用于集合操作的投影和选择,如books.{?#this.price<35}.{bookName},其中(?#this.price<35)用于选择价格小于35的所有书籍,其中?代表将所有符合条件的书籍PO
挑选出来组成一个子集合。^代表把符合条件的第一个元素提取出来,而$代表将符合条件的最后一个元素提取出来。而{bookName}用于将所有的书籍名称挑选出来组
成一个String的List。#this仅仅用于代表当前迭代的元素。
3.构建map对象.#{"key1":"value1","key2":"map2"..}
4.用于引用Ognl的非根部元素。如#manager.username相对于((Manager)get("manager")).getUsername(),而manager.username相当于getManager().getUsername()
其他使用场景:
#books[1]、 #foo["key"]

%用于计算ognl表达式,将普通字符串转换为ognl表达式进行计算:
%{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)
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值