EL即Expression Language(表达式语言)
EL的语法:${ EL exprission }
${ bean.name } 或 ${ bean[‘name’] }
说白了,EL是用来显示数据的,功能跟<%=表达式%> 一样,EL是不需要引入什么东西的

JSTL(JavaServerPages Standard Tag Library)JSP标准标签库
JSTL标准标签库包括核心标签库和SQL标签库,核心标签库常用的是 if 和 forEach
说白了JSTL常实现 网页逻辑判断 和 迭代显示的,需要引入

<%@ taglib uri="http://java.sun.com/jsp/jstl/core" prefix="c"%>

只要JSTL和EL结合,就基本可以让页面再无<% %> jsp代码了。


一、EL表达式

1、EL相关概念

JSTL一般要配合EL表达式一起使用,来实现在jsp中不出现java代码段。所以我们先来学习EL表达式
EL(Expression Language)表达式语言:用于计算和输出存储在标志位置(page、request、session、application)的java对象的值,然后对它们执行简单操作;EL是JSP2.0规范的一部分,只要容器支持Servlet2.4/JSP2.0,就可以在JSP2.0网页中直接使用EL。通常与 JSTL 标记一起作用,能用简单而又方便的符号来表示复杂的行为。

2、EL基本格式

EL表达式的格式:用美元符号($)定界,内容包括在花括号({})中;

例如:
点号记法:${BeanName.beanProperty}
数组记法:${BeanName[“beanProperty”]}

此外,您可以将多个表达式与静态文本组合在一起以通过字符串并置来构造动态属性值;

例如:Hello {loginInfoBean.suser} ${loginInfoBean.spwd}

3、EL语法组成-标识符

  • (1)EL隐藏对象 (常用)


    PS:使用EL的时候,默认会以一定顺序(pageContext、request、session、application)搜索四个作用域,将最先找到的变量值显示出来。
  • (2)EL存取器

存取器用来检索对象的特性或集合的元素。存取器: 通过 “[]” 或 “.” 符号获取相关数据

例:
//获取输出bean中的suser属性值;
${userBean.suser}  或  ${userBean[“suser”]}
//获取map中key为id对应的值;
${mcType[“id”]}
  • (3)EL运算符

  • 4、开启和关闭EL表达式

  • 1)开启方法

在servlet2.4之后默认方法为false,即可以不写或写成

<%@ page isELIgnored="false" %>
  • 2)关闭方法
<%@ page isELIgnored="true" %>

还有一种批量禁用EL的方法,可以在WEB-INF/web.xml中使用jsp-property-group标签批量禁用el,web.xml中进行如下配置。

<?xml version="1.0" encoding="UTF-8"?>
<web-app xmlns="http://java.sun.com/xml/ns/j2ee"xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"xsi:schemaLocation="http://java.sun.com/xml/ns/j2ee http://java.sun.com/xml/ns/j2ee/web-app_2_4.xsd"version="2.4"><jsp-config><jsp-property-group><url-pattern>*.jsp</url-pattern><el-ignored>true</el-ignored></jsp-property-group></jsp-config>
</web-app>

二、JSTL标签库

  • (1)相关概念

    JSTL(JSP Standard Tag Library,JSP标准标签库)是一个不断完善的开放源代码的JSP标签库,是由apache的jakarta小组来维护的。JSTL1.0 由四个定制标记库(core、format、xml 和 sql)和一对通用标记库验证器组成。
如果要使用JSTL,则必须引用jstl.jar和 standard.jar两个包。

  • (2)JSTL标签库分类

    core 标记库提供了定制操作,通过限制了作用域的变量管理数据,以及执行页面内容的迭代和条件操作。它还提供了用来生成和操作 URL 的标记。
    format 标记库定义了用来格式化数据(尤其是数字和日期)的操作。它还支持使用本地化资源束进行JSP页面的国际化。
    xml 库包含一些标记,这些标记用来操作通过XML表示的数据,而 sql 库定义了用来查询关系数据库的操作。
     两个 JSTL 标记库验证器允许开发人员在其 JSP 应用程序中强制使用编码标准。

  • ) forEach迭代标签
<c:forEach items="${list}" var="depart"><tr class="message-unread"><td>${depart.id}</td><td>${depart.name}</td><td>${depart.address}</td><td><a class="btn btn-primary active btn-sm" href="/department/toUpdate/${depart.id}"><span class="glyphicon glyphicon-edit"></span> 编辑</a><a class="btn btn-danger active btn-sm" href="/department/remove/${depart.id}"><span class="glyphicon glyphicon-trash"></span> 删除</a></td></tr>
</c:forEach>
  • ) if标签,进行网页逻辑判断
<div class="panel-footer text-right"><c:if test="${sessionScope.employee.post==Contant.POST_FM || sessionScope.employee.post==Contant.POST_GM}"><button type="submit" class="button" name="dealType" value="${Contant.DEAL_PASS}"> ${Contant.DEAL_PASS}</button><button type="submit" class="button" name="dealType" value="${Contant.DEAL_BACK}"> ${Contant.DEAL_BACK}</button><button type="submit" class="button" name="dealType" value="${Contant.DEAL_REJECT}"> ${Contant.DEAL_REJECT}</button></c:if><c:if test="${sessionScope.employee.post==Contant.POST_CASHIER}"><button type="submit" class="button" name="dealType" value="${Contant.DEAL_PAID}"> ${Contant.DEAL_PAID}</button></c:if><button type="button" class="button" onclick="javascript:window.history.go(-1);"> 返回 </button>
</div>
  • (3)JSTL的优点
  • (4)为什么要用JSTL

    我们JSP用于开发信息展现页非常方便;也可以嵌入java代码(scriptlet、表达式和声明)代码用来实现相关逻辑控制。看下面程序。但这样做会带来如下问题:

1) jsp维护难度增加
2) 出错提示不明确,不容易调试
3) 分工不明确;(即jsp开发者是美工,也是程序员)
4) 最终增加程序的开发成本

     解决上面的问题可以使用定制标记库,JSTL使JSP开发者可以减少对脚本元素的需求,甚至可以不需要它们,从而避免了相关的维护成本。使分工更明确。JSTL一般配合EL一起使用,因此先看看EL.

  • (5)使用方法

    • 需要引入标签库
    <%@ taglib uri="http://java.sun.com/jsp/jstl/core" prefix="c"%>
    <%@ taglib uri="http://java.sun.com/jsp/jstl/fmt" prefix="fmt"%>
    <%@ taglib uri="http://java.sun.com/jsp/jstl/xml" prefix="x"%>
    <%@ taglib uri="http://java.sun.com/jsp/jstl/sql" prefix="sql"%>
    <%@ taglib uri="http://java.sun.com/jsp/jstl/functions" prefix="fn"%>
    

https://blog.csdn.net/qq_42175986/article/details/82622928

https://blog.csdn.net/kuangzhixuan/article/details/74376509

EL表达式和JSTL标签的区别相关推荐

  1. 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.. ...

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

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

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

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

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

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

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

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

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

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

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

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

  8. 【JSP教科书】JSP知识在线指南(记录知识JSP体系、EL表达式、JSTL标签库、JSP开发模型和分页查询)

    文章目录 @[toc] 一.JSP简介 1.1 什么是JSP? 1.2 JSP的特点 1.3 JSP为什么也是Servlet 1.4 tomact服务器中的资源分析 1.4.1 tomact服务器中的 ...

  9. Java Web - EL表达式和JSTL标签库

    在使用servlet和jsp的过程中,两者之间的数据流转是十分常见的,jsp实际上也是一种servlet,也就是两个servlet之间的数据流转,我们根据不同的使用场景选择使用,请求转发(在reque ...

最新文章

  1. mysql的主从复制功能_Mysql的主从复制功能
  2. 基于spring boot调用接口的工具类
  3. 11月29日云栖精选夜读:阿里传奇工程师多隆的程序世界
  4. 【GIF动画+完整可运行源代码】C++实现 归并排序——十大经典排序算法之五
  5. 自建服务器 下bt,使用Docker安装OpenTracker,自建BT Tracker服务器
  6. Android布局动态化,一种基于堆积木思想的卡片式Android动态布局方法与流程
  7. python mro文件_Python MRO
  8. 纽约州立大学宾汉姆顿大学计算机科学专业,纽约州立大学宾汉姆顿大学
  9. 我为什么辞去 Netflix 价值 45 万美元的开发工作
  10. day17--JQuery
  11. 整理 被appstore 拒绝审核通过的原因
  12. Oracle数据库基础知识(一)
  13. MPEG-7实例入门
  14. vector 内部方法大全 学习(初学者的参考资料)
  15. 直方图规定化python+opencv实现
  16. python网络爬虫网易云音乐guihub_Github获8300星!用Python开发的一个命令行的网易云音乐...
  17. 数学随想之一抽样分布与总体分布
  18. 写给在写毕业论文的你们免安装深度学习线上GPU环境准备
  19. 中国移动 OneNET 物联网平台从入门到「放弃」
  20. 服务器和客户端信息的获取

热门文章

  1. JS-面向对象-This的指向---简单的函数调用 / 作为对象的方法调用时 / 作为构造函数调用时
  2. CentOS7.5 firefox Flash插件更新
  3. codeforces 536a//Tavas and Karafs// Codeforces Round #299(Div. 1)
  4. Object Detection API 相关
  5. python2 使用matplotlib
  6. MySQL中的翻页优化和延迟缓存
  7. 企业邮箱及邮件服务器架设
  8. Flutter Gzip 编码与解码 Dart Gzip 工具类操作
  9. java 程序语言中的LinkedList 集合基本方法演示
  10. H3C DHCP特点