EL & JSTL (简介)

EL & JSTL (简介)

1.EL简介

1.1概述
  • EL (Expression Language) 是 jsp内置的表达式语言
  • EL表达式出现目的是为了使jsp写起来更加简单 , 让jsp的代码更佳简化
  • EL表达式 仅仅用来读取数据, 而不能对数据进行修改
1.2 作用
  • 用以访问页面的上下文以及不同作用域中的对象 , 取得对象属性的值
  • 执行简单的运算或判断操作
1.3特点
  • EL在得到某个数据时 , 会自动进行数据类型的转换
  • 使用El表达式输出数据时 , 如果有则输出数据 , 如果为null 则什么也不输出

2.EL基本使用

  • 基本语法

    • ${标识符} : 默认从小到大域进行检索数据 , 如始终为检索到数据 , 则什么也不显示 .
    • ${域对象.标识符} : 从指定域中取数据 .
  • EL获取 对象及对象中的属性

    • ${域对象.对象名.属性}

    • ${域对象.对象名[“属性”]}

        <%
            Map<String,Object> map = new HashMap<>();
            map.put("a.a.a","aaaVAlue");
            map.put("b+b+b","bbbVAlue");
            map.put("c-c-c","cccVAlue");
            request.setAttribute("map",map);
          %>
              ${ map["a.a.a"] } <br>
              ${ map['b+b+b'] } <br>
              ${ map["c-c-c"] } <br>
      
  • 属性

    • 属性 : 封装后的全局变量
    • ${域对象.对象名.属性} 相当于调用对象中的getxxx()方法

3.EL 运算符

  • empty 运算符 : 判断空值的运算符 , 主要支持三种空

    • “”
    • null
    • 数组或聚合的长度为 0
  • 语法

    • ${empty 标识符} : 判断元素是否为空 , true
    • ${not empty 标识符} : 判断元素非空 , true : 非空

4.El中11个隐式对象

  • 4个域对象

    称呼     page 域    	  请求域  	  	 会话域   		  web域
    jsp     pageContext  	 request 	 session    application
    el      pageScope     requestScope   sessionScope  applicationScope
    
  • 其他对象

    • pageContext : 获取jsp中其他8个对象
    • param: 获取请求参数 , 与其jsp中request.getParameter() 作用一致
    • paramValues : 获取多个同名的请求参数
    • header : 获取请求头信息 , 与jsp中request.getHeader()作用一致
    • headerValues : 获取多个请求头信息
    • cookie : 获取cookie信息
    • initParam : 获取初始化参数 与 jsp中的servletContext.getInitParameter()作用一致
  • 总结

    • jsp中的pageContext = el中的pageScope + pageContext
    • jsp中的request = el中requestScope [域对象] + param [获取请求参数] + header [获取请求头]
    • 扩展 : 如在el中需要jsp request对象的其他功能 ? [获取url , 转发]
      • 答 : ${pageContext.request.contextPath}

JSTL

1.JSTL简介

  • 什么是JSTL标签库

    JSTL标签库 全称是指 JSP Standard Tag Library JSP标准标签库。是一个不断完善的开放源代码的JSP标签库。

    EL表达式主要是为了替换jsp中的表达式脚本,而标签库则是为了替换代码脚本。这样使得整个jsp页面中代码变得更佳简洁。

  • 2 core核心库的使用
    • set

      保存之前输出 : ${pageScope.abc} <br>
      <c:set var="abc" value="scope" scope="page"></c:set>
      保存之后输出: ${pageScope.abc}
      
    • choose

      <%--
          choose开始多路判断
      when 就是其中一种判断
      test就是判断的表达式(EL表达式)
      otherwise 表示剩下的情况
      
      choose,when,otherwise标签使用时需要注意的几个点:
      1 标签里不能使用html注释
      2 when标签的父标签一定是choose标签
      --%>
          <c:choose>
              <c:when test="${requestScope.height > 190}">巨人</c:when>
              <c:when test="${requestScope.height > 180}">高人</c:when>
              <c:otherwise>
                 <c:choose>
                     <c:when test="${requestScope.height > 170}">刚好</c:when>
                     <c:when test="${requestScope.height > 160}">你懂的</c:when>
                 </c:choose>
              </c:otherwise>
          </c:choose>
      
    • forEach

      <%--1.遍历110,输出
              begin是遍历的开始索引
              end 是遍历的结束索引
              var 是当前正在遍历到的数据
      
      --%>
      <c:forEach begin="1" end="10" var="i">
          <span>${i}</span>
      </c:forEach>
      
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值