• 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对象存储的数据的值。

     

  • 相关阅读:
    20165311《网络对抗技术》Exp1 PC平台逆向破解
    20165311 《网络对抗技术》 Kali安装
    2018-2019-1 20165307 20165327 20165332 实验五 通讯协议设计
    2018-2019-1 20165307 20165327 20165332 实验四 外设驱动程序设计
    2018-2019-1 20165307 20165327 20165332 实验三 并发程序
    2018-2019-1 20165307 20165327 20165332 实验二 固件程序设计
    2018-2019-1 20165307 20165327 20165332 实验一 开发环境的熟悉
    2018-2019-1 20165307 《信息安全系统设计基础》第4周学习总结
    2018-2019-1 20165307 《信息安全系统设计基础》第3周学习总结
    20165307 《信息安全系统设计基础》 第一周
  • 原文地址:https://www.cnblogs.com/dylanzou/p/12309159.html
Copyright © 2020-2023  润新知