0%

EL表达式和JSTL标签-复习

EL表达式和JSTL标签

EL表达式

  • 概念:Expression Language 表达式语言

  • 作用:替换和简化jsp页面中java代码的编写

  • 语法:${表达式}

  • 注意:

    • jsp默认支持el表达式的,如果要忽略EL表达式,可
      1. 设置jsp中page指令中:isELIgnored="true" 忽略当前jsp页面中所有el表达式
      2.  ${表达式}:忽略当前这个el表达式
  • 使用:

    • 运算

      1. 算数运算符:+ - * /(div) %(mod)
      2. 比较运算符:> < >= <= != ==
      3. 逻辑运算符:&&(and) ||(or) !(not)
      4. 空运算符:empty
        • 功能:判断字符串/集合/数组对象是否为null并且长度是否为0 ${empty list}
        • ${not empty str}
    • 获取值

      1. EL表达式只能从域对象中获取值
      2. 语法:
        1. ${域名称.键名}:从指定域中获取指定键的值
          • 域名称:
            1. pageScope-->pageContext
            2. requestScope-->request
            3. sessionScope-->session
            4. applicationScope-->application(ServletContext)
        2. ${键名}:表示依次从最小的域中查找是否有该键对应的值,直到找到为止
      3. 获取对象、List集合、Map集合的值
        1. 对象:${域名称.键名.属性名}
          • 本质上会去调用对象的getter方法
        2. List集合:${域名称.键名[索引]}
        3. Map集合:${域名称.键名.key名称} ${域名称.键名["key名称"]}
    • 隐匿对象

      • EL表达式有11个隐式对象

      • pageContext:获取jsp其它八个内置对象

        ${pageContext.request.contextPath}:动态获取虚拟目录

JSTL表达式

  • 概念:JavaServer Page Tag Library JSP标准标签库

    • 是由Apache组织提供的开源的免费的JSP标签
  • 作用:用于简化和替换JSP页面上的java代码

  • 使用步骤:

    1. 导入jstl相关jar包
    2. 引入标签库
    3. 使用标签
  • 常用的JSTL标签

    1. if:相当于java中的if

      1
      2
      3
      4
      5
      6
      7
      <%-- 属性:
      test 必须属性,接收boolean表达式
      - 如果表达式为true,则显示if标签体内容,否则不显示
      - 一般情况下,test属性值会结合el表达式一起使用
      注意:c:if标签没有else情况,想要else情况,可以再定义一个c:if标签
      --%>
      <c:if test="false"></c:if>
    2. choose:相当于java中的switch

      1
      2
      3
      4
      5
      6
      7
      <c:choose>
      <c:when test="${number==0}">0</c:when>
      <c:when test="${number==1}">1</c:when>
      <c:otherwise>
      数字有误
      </c:otherwise>
      </c:choose>
    3. foreach:相当于java中的for循环

      1
      2
      3
      4
      5
      6
      7
      8
      9
      10
      11
      12
      13
      14
      15
      16
      17
      18
      19
      20
      21
      <%--
      varStatus:循环状态对象
      index:容器中元素的索引,从0开始
      count:循环次数,从1开始
      --%>
      <%--
      for(int i=0;i<10;i++){

      }
      --%>
      <c:forEach begin="1" end="10" var="i" step="1">
      ${i}<br>
      </c:forEach>
      <%--
      for(String s:list){

      }
      --%>
      <c:forEach items="${list}" var="str" varStatus="s">
      ${s.index}--${s.count}--${str}
      </c:forEach>