SpringMVC学习之EL表达式一

1.语法:

EL表达式是以 ${ 开头,以 } 结束的的.例如 : ${expression}。常用来连接两个表达式,对于一系列的表达式,取值将从左到右,结果的类型为String并且连接在一起,如:a+b=8,c+d=10,${a+b}${c+d}输出的结果是810;

若在定制标签的属性值中使用EL表达式,该表达式的值结果将强制转为该属性需要的类型,如下:

<my:tag someAttribute="${expression}" />

PS:只要是 ${ 则表示一个EL表达式,如果只是作为一般的字符串,就在文本前加转义字符,如:/${

2.关键字,不能用来作标识符

and   eq  gt  true  instanceof  or  ne  le  false  empty  not  lt  ge   null   div  mod 

3.[ ] 和 . 运算符

EL可以返回任意类型的值,若EL表达式的结果带属性的对象,可以用 [ ]. 来访问属性,如下:

${object["id"]} ${object.id} 属性为对象,可以再加一个 ${object.object1.id}

访问JavaBean,利用[ ]. 可以访问bean的属性 ${bean.id}${bean["id"]}

4.取值规则

EL的表达式的取值是从左到右的,对于expr-a[expr-b]

1)先计算expr-a 得到value-a

2)如果value-a为null,则返回null

3)计算expr-b得value-b

4)如果value-b为null,则返回null

5)如果value-a为java.util.Map,,则会查看value-b是否为Map中的一个key,若不是则返回null

6)若value-a为java.util.List或者是一个array则:

a:强制value-b为int,若强制失败,则抛出异常

b:如果value-a.get(value-b)抛出IndexOutOfBounds 或 Array.get(value-a,value-b)抛出ArrayIndexOutOfBound则返回null

c:否则,若value-a为List,则返回value-a.get(value-b) ,若value-b 为Array,则返回Array.get(value-a,value-b)

7) 若不是Map,List,Array,则value-a必定为JavaBean,则value-b必须强制为String. ( 若value-b是value-a的可读属性,则调用getter,若getter异常,则表达式无效,否则该表达式有效)

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值