EL表达式

概念

Expression Language 表达式语言

作用

替换和简化 jsp 页面中 java 代码的缩写

语法

${表达式}

<mark>注意</mark>:
jsp默认使用EL表达式,怎么关闭默认?

  • <%page isELIgnored=true %> - 整个页面不用EL
  • \${表达式} - 仅忽略这个表达式

使用

  • 运算符:

    1. 算符运算符:+ - * /(div) %(mod)
    2. 比较运算符:> < >= <= != eq ==
      <c:if test = "${list.name eq '门票 '} "> </c:if>
    3. 逻辑运算符:&&(and) ||(or) !(not)
    4. 空运算符:empty
      == 用于判断字符串、集合、数组对象是否为null 或者 长度是否为 0 ==
      <mark>${empty list}</mark>
  • 获取值

    • el表达式只能从域对象中获取值
    • 语法:
    1. ${域名.键名} :从指定域中获取指定键的值
      域名称:
      pageScope ⇒ pageContext
      requestScope ⇒ request
      sessionScope ⇒ session
      applicationScope ⇒ application (ServletContext)
      举例:在request域中存储了name=“张三”
      获取:${requestScope.name}
    2. ${键名}: 表示从最小的域中查找是否有该键对应的值,直到找到为止。
  • 获取对象属性

    • ${域名称.键名称.属性名称}
      • 本质上会去调用对称的 getter 方法
      • setter 或 getter方法,去掉set或get,再将其余部分首字母变为小写
      • setName ⇒ Name ⇒ name
  • List 集合:${域名称.键[索引]}

  • Map 集合:${域名称.键名称.key名称}

隐式对象

  • el表达式中有11个隐式对象
    • <mark>pageContext</mark>
      • 获取jsp其他八个内置对象(隐式对象)
        • ${pageContext.request.contextPath}:动态获取虚拟目录

<mstyle mathcolor="&#35;f01"> </mstyle> \color{#f01}{表达式套表达式}