EL表达式

Posted skyzou

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了EL表达式相关的知识,希望对你有一定的参考价值。

什么是EL表达式?

EL全称:Expression Language,是一种写法非常简洁的表达式,语法简单易懂,便于使用。

表达式语言的灵感来自于ECMAScript和XPath表达式语言。

EL表达式的作用

让jsp书写起来更加的方便。简化在jsp中获取作用域数据或者请求数据的写法。也会搭配Jstl来进行使用。

EL表达式的使用

  语法结构:$(expression),提供“.”和“[ ]”两种运算符来存取数据。

  a)使用EL表达式获取请求数据
  1.获取用户请求数据
  2.获取请求头数据
  3.获取Cookie数据
  b)使用EL表达式获取作用域数据

  1.获取作用域数据

  2.作用域查找顺序

  3.获取指定作用域中的数据

  c)使用EL表达式进行运算
  1.算术运算
  2.关系运算
  3.逻辑运算
  d)使用EL表达式进行空值判断

传统方式获取作用域数据:
  缺点一:需要导入相关实体类
  缺点二:需要强转
  缺点三:获取数据的代码过于麻烦

使用EL表达式获取作用域数据:
  作用:获取作用域对象中的数据。

  语法格式:${表达式}

  注意:

  获取的是pageContext、request、session、application四个对象中的数据,其他数据一概不理会,找到了则获取返回,找不到则什么都不做,也不报错。 

获取请求数据
  request对象存储了请求数据->param.键名 返回值
  request对象存储了请求数据->paramValues.键名 返回的是数组
获取通过setAttribute方法存储到作用域对象中的数据
  语法:${键名} ,返回键名对应的值
  注意:
  如果存储的是字符串则直接返回;
  如果存储的是对象,则返回的是对象。

获取对象中的数据
  普通对象
  ${键名.属性名.属性名...}
  集合对象
  list集合->${键名[下标]}
  map集合->${键名.map集合存储的键名}

作用域查找顺序:
  pageContext->request->session->application(从小到大)
  注意:
  每次查找都是从小到大进行查找,找到了则获取,不再继续找了。
指定作用域范围查找:
  ${pageScope.键名}
  ${requestScope.键名}
  ${sessionScope.键名}
  ${applicationScope.键名}

EL表达式的逻辑运算:
  ${逻辑表达式}:&& || !
  ${算术表达式}:+、-、*、/
  ${关系表达式}:>、<、>=、<=、==、!=、%
  三目运算
  例:
  逻辑运算:${4>2} -> true
  算术运算:${1+2} -> 3
  关系运算:${1+‘2‘} -> 3
  三目运算:${sex==1?‘男‘:‘女‘} -> 女
  注意:
  “+”号在EL表达式中默认做加法运算,不做字符串连接。使用EL表达式进行字符串连接会报错。

EL的空值判断:
  语法格式:${empty 键名}

  作用:判断键名对象的值是否存有数据。

EL表达式获取请求头数据:

  ${header}->返回所有的请求头数据
  ${header["键名"]}->返回指定的键名的请求头数据
  ${headerValues["键名"]}->返回指定的键名(同键不同值)的值的数组
EL表达式获取Cookie数据:
  
${cookie}->返回存储了所有的cookie对象的map集合
  ${cookie.键名}->返回指定的cookie对象
  ${cookie.键名.name}->返回指定的cookie对象存储的数据的键名
  ${cookie.键名.value}->返回指定的cookie对象存储的数据的值。

 

以上是关于EL表达式的主要内容,如果未能解决你的问题,请参考以下文章

jquery中使用el表达式的问题,求教

EL概述和EL运算符

EL表达式总结

JSTL和EL

EL表达式

jquery与EL表达式的$冲突