Java Web ----EL

EL表达式的全称是Expression Language。

通过引用EL表达式可以代替java在jsp文件中的引用,简化jsp代码。

EL 表达式的格式是:${表达式}

EL表达式搜索御数据的顺序
当四个域中都有相同的 key 的数据的时候,EL 表达式会按照四个域的从小到大的顺序去进行搜索,找到就输出
1.pageContext
2.request
3.session
4.application

 

 

EL 表达式输出 Bean 的普通属性,数组属性。List 集 合属性, 合属性,map 集合属性 集合属性

 EL表达式的11个隐含对象

 

 

 

.EL表达式—运算
语法:${ 运算表达式 } , EL 表达式支持如下运算符

4.1关系运算
4.2逻辑运算
4.3算数运算
empty运算:
empty 运算可以判断一个数据是否为空,如果为空,则输出 true,不为空输出 false。
以下几种情况为空:
1、值为 null 值的时候,为空
2、值为空串的时候,为空
3、值是 Object 类型数组,长度为零的时候
4、list 集合,元素个数为零
5、map 集合,元素个数为零

EL的运算符使用 

 

 

 

JSTL

EL通常与JSTL一起使用 。JSTL标识库的作用是减少JSP文件的Java代码,使Java代码与HTML代码分离,所以JSTL标识库符合MVC设计理念。MVC设计理念的优势是将动作控制、数据处理、结果显示三者分离。

 使用jstl需要导⼊ jar 包(两个 jstl.jar standard.jar)

- 导入核心标签库
      <%@ taglib prefix="c" uri="http://java.sun.com/jsp/jstl/core" %>

- c标签是我们JSTL中最常用的一个标签库,它里边封装了很多开发中常用的功能。

    c:out
      作用:向页面中输入一个内容,一般要结合EL表达式使用!
      例子:<c:out value="" default="" escapeXml=""></c:out>
        属性:
          value : 要输出内容
          default : 当内容为空时显示的默认值
          escapeXml : 是否自动转义特殊字符,默认值为true 自动转义,一般不修改该属性

    c:set
      作用:向域中设置一个属性
      例子:<c:set var="name" value="孙悟空" scope="request"></c:set>
        属性:
          var :向域中存储的属性名
          value :向域中存储的属性值
          scope :向那个域中添加属性,四个可选值(page request session application),默认是page

    c:remove
      作用:移除域中的一个属性
      例子:<c:remove var="name" scope="session"/>
        属性:
          var :要移除的属性的名字
          scope :要移除的属性所在的域,四个可选值(page request session application)
            如果不设置该属性,则默认移除四个域中指定属性。

    c:if
      作用 :相当于java中if语句
      例子:
        <c:if test="${empty param.name }">
        <h3>您没有输入name属性!</h3>
        </c:if>
        属性:
          test :接收一个boolean类型的值
          如果test的值为true则标签体执行
          否则不执行标签体

    c:choose c:when c:otherwise
      作用:相当于if...else
      例子:
        <c:choose>
        <c:when test="${param.score == 100 }">
        <h3>恭喜您考了100分!</h3>
        </c:when>
        <c:otherwise>
        <h3>恭喜你,你不及格!</h3>
        </c:otherwise>
        </c:choose>
        属性:
          when标签中的test属性:
          接收一个boolean类型的值
          如果test的值为true则标签体执行
          否则不执行标签体

    注意:在choose标签中可以指定多个when标签,但是只有一个when会执行。
      当所有的when标签都不执行时,则otherwise标签执行。

    c:when和c:otherwise不能脱离c:choose使用。


    c:forEach
      作用:可以在页面中对集合进行遍历
      例子:
        <c:forEach items="${list}" var="hero">
        ${hero} <br />
        </c:forEach>

        <c:forEach items="${map }" var="user">
        ${user.key} --- ${user.value} <br />
        </c:forEach>
        属性:
          items:要遍历的集合
          var:对集合中的对象引用的名字


    注意:在遍历Map时,返回的是一组一组的键值对结构
        我们可以通过对象.key获取键,通过对象.value获取值

      作用:可以用来遍历一组数
      例子:
        <c:forEach begin="1" end="20" var="index" step="1">
        <a href=#>${index}</a>
        </c:forEach>
        属性:
          begin :开始的位置,注意begin不能小于0
          end :结束的位置
          var :引用的名字
          step :步长,每次自增的大小

    c:url
      作用:可以创建一个完整的绝对路径
      例子:
        <c:url value="/index.jsp">
        <c:param name="name" value="孙悟空"></c:param>
        <c:param name="age" value="18"></c:param>
        </c:url>
        属性:
          value:要设置的地址,注意该地址要以/开头,否则不会加上项目名
          在url标签中可以添加c:param标签,可以自动为地址拼接上请求参数。

    c:redirect
      作用:请求的重定向
      例子:
        <c:redirect url="/index.jsp">
        <c:param name="name" value="唐僧"></c:param>
        </c:redirect>
        属性:
    url:
      重定向到目标地址,注意该地址不要自己添加项目名。

      在redirect标签中可以添加c:param标签,可以自动为地址拼接上请求参数。

函数标签库:
  作用:函数标签库需要配合EL表达式使用,它里面的方法都是一些字符串的操作

  引入函数标签库:<%@ taglib prefix="fn" uri="http://java.sun.com/jsp/jstl/functions" %>

    例子:

      ${fn:contains("hello","He") } <br /> 判断前一个字符串是否包含后一个字符串

      ${fn:containsIgnoreCase("hello","He") } <br /> 判断前一个字符串是否包含后一个字符串,不区分大小写

      ${fn:endsWith("hello","alo") }<br /> 判断前一个字符串是否以后一个字符串结尾

  <!-- 自动将特殊字符转义 -->
      ${fn:escapeXml("<html></html>

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 1
    评论
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值