【笔记】JavaWeb的EL表达式

前言

表达式语言(Expression Language),或称EL表达式,简称EL,是Java中的一种特殊的通用编程语言,借鉴于JavaScript和XPath。主要作用是在Java Web应用程序嵌入到网页(如JSP)中,用以访问页面的上下文以及不同作用域中的对象 ,取得对象属性的值,或执行简单的运算或判断操作。EL在得到某个数据时,会自动进行数据类型的转换。(维基百科

启用EL表达式

1
<%@ page isELIgnored="false"%>

获取数据

获取会话中的数据

  • EL表达式中书写变量,并不会直接获取这个变量的值,而是根据变量的名字,到四大作用域中寻找该变量名对应的属性值,并且寻找的顺序是按域的范围大小,从小到大去寻找。如果找到了就直接输出该属性对应的值(即使后面还有,也不会再找了),如果找不到就什么也不输出
    域的范围从小到大依次是:pageContextrequestsessionapplication

<key>:域中的键值对的键

1
${<key>}

从指定域中获取数据

1
2
${pageScope.<key>}
${requestScope.<key>}

从Cookie中获取数据

<key>:Cookie的键名

1
${cookie.<key>.value}

获取数组中的数据

<arr>:数组名

1
${<arr>[0]}

获取map集合中的数据

<map>:map集合名
<key>:存入map集合中数据的键,键值最好不要为纯数字,因为EL无法.出来数字

1
${<map>.<key>}

获取对象中的数据

  • 如果会话中存储的是POJO对象,可以直接取对象中的属性
  • 该操作并不是直接.出来的属性值,而是调用了get方法取出的值

<attributes>:对象中get方法名的后缀(如getName,则<attributes>就为name

1
${<key>.<attributes>}

运算符

关系运算符

代码 含义
gt 大于
lt 小于
eq 等于
ne 不等于
ge 大于等于
le 小于等于

逻辑运算符

代码 含义
and
or

完成