EL表达式介绍

  • EL(Expression Language):表达式语言
  • 在 JSP 2.0 规范中加入的内容,也是 Servlet 规范的一部分
  • 作用:在 JSP 页面中获取数据。让我们的 JSP 脱离 java 代码块和 JSP 表达式
  • 语法:${ 表达式内容 }
<%@ page contentType="text/html;charset=UTF-8" language="java" %>
<html>
<head><title>EL表达式快速入门</title>
</head>
<body><%--1.向域对象中添加数据--%><% request.setAttribute("username","zhangsan"); %><%--2.获取数据--%>Java代码块:<% out.println(request.getAttribute("username")); %> <br>JSP表达式:<%= request.getAttribute("username")%> <br>EL表达式:${username}
</body>
</html>

EL表达式的注意事项

  • EL 表达式没有空指针异常
  • EL 表达式没有索引越界异常
  • EL 表达式没有字符串的拼接

EL表达式的运算符

  • 关系运算符

    运算符 作用 示例 结果
    == 或 eq 等于 ${5 == 5} 或 ${5 eq 5} true
    != 或 ne 不等于 ${5 != 5} 或 ${5 ne 5} false
    < 或 lt 小于 ${3 < 5} 或 ${3 lt 5} true
    > 或 gt 大于 ${3 > 5} 或 ${3 gt 5} false
    <= 或 le 小于等于 ${3 <= 5} 或 ${3 le 5} true
    >= 或 ge 大于等于 ${3 >= 5} 或 ${3 ge 5} false
  • 逻辑运算符

    运算符 作用 示例 结果
    && 或 and 并且 ${A && B} 或 ${A and B} true/false
    || 或 or 或者 ${A || B} 或 ${A and B} true/false
    ! 或 not 取反 ${ !A } 或 ${ not A } true/false
  • 其他运算符

    运算符 作用
    empty 1.判断对象是否为null
    2.判断字符串是否为空字符串
    3.判断容器元素是否为0
    条件 ? 表达式1 : 表达式2 三元运算符
    • 容器元素是否为0,就是容器的长度是否为0(其实就是检查容器是否为空)

EL表达式使用细节

  • EL 表达式能够获取四大域对象的数据,根据名称从小到大在域对象中查找

  • 还可以获取 JSP 其他八个隐式对象,并调用对象中的方法

    <%--获取四大域对象中的数据--%>
    <%
    //pageContext.setAttribute("username","zhangsan");
    request.setAttribute("username","zhangsan");
    //session.setAttribute("username","zhangsan");
    //application.setAttribute("username","zhangsan");
    %>
    ${username} <br><%--获取JSP中其他八个隐式对象  获取虚拟目录名称--%>
    <%= request.getContextPath()%>
    ${pageContext.request.contextPath}
    

EL表达式的11个隐式对象

​ EL表达式也为我们提供隐式对象,可以让我们不声明直接来使用,十一个对象见下表,需要注意的是,它和JSP的隐式对象不是一回事:

EL中的隐式对象 类型 对应JSP隐式对象 备注
PageContext Javax.serlvet.jsp.PageContext PageContext 完全一样
ApplicationScope Java.util.Map 没有 操作应用域对象数据
SessionScope Java.util.Map 没有 操作会话域对象数据
RequestScope Java.util.Map 没有 操作请求域对象数据
PageScope Java.util.Map 没有 操作页面域对象数据
Header Java.util.Map 没有 根据key获取请求消息头,值是一个
HeaderValues Java.util.Map 没有 根据key获取请求消息头,值是多个(数组)
Param Java.util.Map 没有 根据key获取请求参数,值是一个
ParamValues Java.util.Map 没有 根据key获取请求参数,值是多个(数组)
InitParam Java.util.Map 没有 根据key获取全局参数,value是参数值
Cookie Java.util.Map 没有 根据key获取cookie的值

JSTL的介绍

  • JSTL(Java Server Pages Standarded Tag Library):JSP 标准标签库

  • 主要提供给开发人员一个标准通用的标签库

  • 开发人员可以利用这些标签取代 JSP 页面上的 Java 代码,从而提高程序的可读性,降低程序的维护难度

  • 它由以下5个部分组成:

    组成 作用 说明
    core 核心标签库 通用的逻辑处理
    fmt 国际化 不同地域显示不同语言
    functions EL函数 EL表达式可以使用的方法
    sql 操作数据库 用于操作数据库
    xml 操作XML 用于操作XML

核心标签库

1)核心库介绍

​ 实际开发中,用到的jstl标签库主要以核心标签库为准,偶尔会用到国际化标签库的标签。下表中把我们经常可能用到的标签列在此处。

标签名称 功能分类 分类 作用
<c:if> 流程控制 核心标签库 用于判断
<c:choose>,<c:when>,<c:otherwise> 流程控制 核心标签库 用于多个条件判断
<c:foreache> 迭代操作 核心标签库 用于循环遍历
  • 案例

    <%@ page contentType="text/html;charset=UTF-8" language="java" %>
    <!--prefix给jstl core核心库起个前缀名,使用的标签就以c开头-->
    <%@taglib prefix="c" uri="http://java.sun.com/jsp/jstl/core" %>
    <html>
    <head><title>流程控制</title>
    </head>
    <body><%--向域对象中添加成绩数据--%>${pageContext.setAttribute("score","T")}<%--对成绩进行判断--%><c:if test="${score eq 'A'}">优秀</c:if><%--对成绩进行多条件判断--%><c:choose><c:when test="${score eq 'A'}">优秀</c:when><c:when test="${score eq 'B'}">良好</c:when><c:when test="${score eq 'C'}">及格</c:when><c:when test="${score eq 'D'}">较差</c:when><c:otherwise>成绩非法</c:otherwise></c:choose><%--向域对象中添加集合--%><%ArrayList<String> list = new ArrayList<>();list.add("aa");list.add("bb");list.add("cc");list.add("dd");pageContext.setAttribute("list",list);%><%--遍历集合--%><c:forEach items="${list}" var="str">${str} <br></c:forEach>
    </body>
    </html>
    

EL表达式和JSTL的介绍以及基本使用相关推荐

  1. java标签库jstl-el表达式介绍使用配置手册_JAVA EE 实验报告EL表达式和jstl标签库的使用...

    昆明理工大学信息工程与自动化学院学生实验报告 ( 2013 -2014 学年第一学期) 课程名称:Java EE技术开课实验室:系机房444 2013 年 12月2 日年级.专业.班计科111 学号姓 ...

  2. java el表达式 if else_jsp EL表达式和JSTL标签if-else if-else用法

    java web javaEE ,jsp EL表达式和JSTL标签if-else if-else四种用法 一.条件运算符 ${user.gender==?'男':'女'} 二.if() code.. ...

  3. spring mvc学习(37):JavaEE-JSP基础-EL表达式和JSTL标签库(Taglibs)

    EL表达式和JSTL标签库: 在JSP页面代替java代码,便于编写 一.EL表达式 作用: ${} 简化脚本表达式 <%= %> j2ee1.4以前版本需指定<%@ page is ...

  4. EL表达式和JSTL:你真的熟练了吗?

    El表达式与JSTL EL表达式 1.运算 2.获取值 JSTL 1.概念 2.作用 3.使用步骤 4.常用的JSTL标签 5.练习 本文主要介绍EL表达式与JSTL,在这之前先科普一下MVC开发模式 ...

  5. 大数据WEB阶段(十三)JSP(二)JSP标签、EL表达式、JSTL

    JSP标签.EL表达式.JSTL (一)JSP标签技术 一.JSP标签技术概述 jsp本质上是一种动态web资源开发技术 , 看起来像是html , 但其中可以写java代码 , 非常方便用来开发动态 ...

  6. el表达式与jstl的用法

    课上顺便整理了下java中的El表达式和jstl的用法,下面以举例的方式来阐述各个标签的作用: 一. 使用el表达式将Map集合中的数据显示出来: 先给Map集合里面放一些数据库,通过EL表达式显示在 ...

  7. jsp脚本、jsp标准动作、EL表达式、JSTL标签

    https://blog.csdn.net/gx_hxl/article/details/79032331 https://blog.csdn.net/a731604348/article/detai ...

  8. JavaWeb EL表达式, JSTL标签及过滤器综合学习

    1.项目结构如右边图所示: (1)controller.filter包下面定义2个过滤器,EncodingFilter 类CheckUserFilter类(后面会有一个登陆验证的过滤器的测试学习), ...

  9. 28. EL 表达式 以及 JSTL 标签库

    28. EL 表达式 以及 JSTL 标签库 1.EL 表达式 a)什么是 EL 表达式,EL 表达式的作用? EL 表达式的全称是:Expression Language.是表达式语言. EL 表达 ...

  10. EL表达式和JSTL标签:简化JSP的Java代码

    JSP页面接收.展示后端的数据,再JSP页面写很多的Java代码会造成书写麻烦.难以阅读.不利于团队协作的缺点,因此我们使用EL表达式和JSTL标签,代替并简化了JSP页面 EL表达式 语法:${st ...

最新文章

  1. LeetCode 137. Single Number II--三次异或消除相同的数--C++,Python解法
  2. python分析excel数据-总结:像Excel一样使用python进行数据分析
  3. ITK:自适应直方图均衡图像滤波器
  4. Linux字符设备驱动框架
  5. HTML--HTML对象的关于位置和大小的属性的图解
  6. springboot jpa sql打印_SpringBoot集成Spring Data JPA以及读写分离
  7. Linux 命令(140)—— tree 命令
  8. liunx 命令 之 mkdir 与 touch
  9. JS中的map()和forEach()有什么区别?
  10. 十大排序算法——计数排序(C语言)
  11. 为什么jar包代码与源代码不一致_Jacoco代码覆盖率工具
  12. 哈希算法——论文整理(未完)
  13. 基于java的病历管理系统设计与实现
  14. linux下分析prn文件,Linux文件的管理
  15. 高并发系统架构案例 - 微信红包高并发架构设计 - 学习/实践
  16. 社工小组 计算机小组活动,《社工小组活动常用游戏整理》
  17. 【Access2003】表的新建、用sql语句查询;关闭警告信息;修改数据库密码;修复数据库
  18. SAP PO的结算状态
  19. 什么是即时通讯?即时通讯的发展
  20. canvas student下载_悉大官方学生系统万能的Canvas和Sydney Student,你真的会用吗?官网平台两步走+实用功能型Tips!...

热门文章

  1. 详谈归并排序时间复杂度过程推导----软考
  2. 手机组态软件 APP监控台达PLC C#全套源代码
  3. 谷歌翻译退出中国,官方因其使用率过低
  4. Vivado初次使用教程
  5. Unity3D中粒子系统
  6. uds 诊断协议的bootloader开发
  7. sqluldr2 配置
  8. 图像配准系列之基于FFD形变与LM算法的图像配准
  9. 我的NVIDIA开发者之旅——Caffe教程(3)使用sklearn和caffe进行简单逻辑回归实践
  10. mysql授权账号查询权限_【MySQL】MySQL授权与用户权限查询