目录

1. EL表达式

2. EL表达式的功能

3. EL表达式的运算符

4. EL表达式访问作用域变量

5. EL的隐含变量

6. JSTL

6.1 通用目的标签

6.2 条件控制标签

6.3 循环控制标签


1. EL表达式

EL表达式是用来替换jsp页面中的脚本语句的语法(知识脚本语句不包括指令和行为)。通过使用EL表达式,可以实现对变量的快速访问等。EL表达式的语法格式为:${EL表达式语句}。

2. EL表达式的功能

使用EL表达式可以实现以下功能:

  1. 对作用域对象的方便访问。
  2. 对Javabean对象的方便访问。
  3. 对集合元素的方便访问。
  4. 对请求参数和cookie等请求参数的方便访问。
  5. 在EL表达式中使用java函数的功能。

3. EL表达式的运算符

EL表达式提供了其自身的运算符。算术运算符和逻辑运算符与java语法相同,不做讲解。其提供的条件运算符就是java中的三元运算符:表达式1?表达式2:表达式3   如果表达式1为true则返回表达式2的结果,如果表达式1为false则返回表达式3的结果。

EL表达式还提供了empty 运算符,其语法格式为:${empty 变量}。用来判断变量的值是否为空。

通过使用“.”运算符可以访问对象的成员和map、list集合中的元素。通过使用[]运算符可以实现对成员、map、list、数组元素的访问。

4. EL表达式访问作用域变量

可以直接使用${属性名}来获取作用域中的变量。上述是没有指定作用域的,其将从page作用域到request一直到application作用域进行查找,查找到了就停止否则一直查找,直到找不到报错。如果需要指定作用域范围,需要使用EL自带的隐藏对象xxxScope来进行访问,其语法格式为:${xxxScope.属性名}。

5. EL的隐含变量

EL中一共有11个隐含变量,分别为:

  1. pageContext:与jsp中的pageContext对象相对应。
  2. param:用来获取请求对象中的参数。
  3. paramValues:用来获取请求对象中的参数数组。
  4. header:用来获取请求对象中的请求头参数。
  5. headerValues:用来获取请求对象请求头的参数数组。
  6. initParam:用来获取Servlet的初始化参数。(也就是<context-param>中的数据。)
  7. cookie:用来获取cookie中的数据。
  8. xxxScope:获取指定请求作用域中的数据。

pageContext:可以用其的request属性获取request中的属性,但是,由于EL表达式中不能使用对象的方法,所以不能使用pageContext.request.getMethod()语句。

param和paramValues的用法格式为:${param.name},${paramValues.name[i]}。相当于调用request.getParamter(String name)来获取请求参数的值。

initParam和header、headerValues直接在后面“.”上需要查询的属性名就可以获取相对应的属性值。

cookie有两种使用方法:${cookie.参数名.value},用来获取参数名对应的cookie参数值;${cookie.JSESSION.value},用来获取cookie的id值。

6. JSTL

虽然EL表达式可以很方便的访问变量,但是由于其不能调用变量的方法和有很多功能实现比较麻烦,为此可以使用JSTL来实现。JSTL就是jsp页面中的一个标签库,通过使用这个标签库可以简化很多步骤,使页面变得更简洁。

JSTL中的标签格式都是:<c:xxx>。标签分为通用目的标签、条件控制标签和循环控制标签。

6.1 通用目的标签

通用目的标签有4个,分别为out、set、remove和catch。

  1. out标签:out标签用来向页面输出值。有两种格式:①<c:out value="要输出的值" escapeXml="true|false" default="默认值">,这里将会输出value中的值;escapeXml如果为true会将输出的值中的特殊字符转换成对应的转义字符;如果要输出的值为空,则会输出默认值。②<c:out value="要输出的值" escapeXml="true|false">defalut 默认值</c:out>。作用同上。
  2. set标签:用来向作用域中设置值。格式:①<c:set var="varName" value="设置值" scope="page|request...|application">。var为变量保存时的名;value为要保存的值;scope为作用域的范围。②<c:set var="varName" scope=".....">body</c:set>和上面一样,不过保存的值为标签内的值。
  3. remove标签:用来删除作用域中的值。格式<c:remove var="varName" scope="...">
  4. catch标签:用来捕获标签中的异常(就是try-catch)。格式:<c:catch var="varName">body</c:catch>

6.2 条件控制标签

条件控制标签有4个,分别为if、choose、when、other。

if标签就是java中的if语句;choose,when,other就是java中的switch-case-default。

  1. if标签格式:①<c:if test="表达式" var="varName" scope="page....">。如果为true会将结果保存到varName中。②<c:if test="表达式"var="varName" scope="page...">body</c:if>。为true还会执行body中的内容。
  2. choose标签格式:<c:choose><c:when>body</c:when>....<c:other>body</c:other>

6.3 循环控制标签

这里只介绍foreach标签。

  1. 格式一:对于数字使用var [begin,end,step]。<c:foreach var="varName" begin="" end="" step="">body</c:foreach>。varName为一个变量名,begin为开始的数字,end为结束的数字,step为步长。
  2. 格式二:对于集合等对象使用var item。<c:foreach var="varName" item="集合元素">body</foreach>。此时就是java的foreach增强for循环。

【JSP】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. JavaWeb EL表达式, JSTL标签及过滤器综合学习

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

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

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

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

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

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

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

  6. el表达式与jstl的用法

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

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

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

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

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

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

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

  10. EL表达式和JSTL表达式及案例

    简介 1. JSP:         1. 指令         2. 注释         3. 内置对象 2. MVC开发模式     3. EL表达式     4. JSTL标签     5. ...

最新文章

  1. 新手初学Regular Expression正则表达式--快速入门
  2. codeforces C Deletion of Repeats(hash)
  3. 贝叶斯学习--极大后验假设学习
  4. Java Lambda 表达式的常见应用场景
  5. 为什么数组排序大写字母在前小写字母在后
  6. java版本微信jssdk、微信验证签名demo(Servlet)
  7. 2018蓝桥杯省赛---java---B---7(螺旋折线)
  8. React开发(112):不要写多余的select
  9. linux修改grub权限,linux下肿么修改grub.cfg
  10. sepic电路MATLAB,cuk电路matlab仿真
  11. TensorRT详细入门指南
  12. 如何快速高效的刷Leetcode
  13. Centos7安装普罗米修斯(Prometheus)监控
  14. 笔记本插入麦克风被识别成耳机怎么办
  15. 人物关系 人脸识别_内在美人物关系介绍图谱 - 电视剧 - 星关系
  16. Pillow库学习笔记之Image.convert去底色详解
  17. 山东大学计算机组成与设计实验六 二进制补码加法器实验
  18. 关于对 Unity 3D Strange IoC 框架事件分发器的认识
  19. 一直找不到软件测试工作?你简历投对了吗?拿了12个offer,才明白投简历的真谛!
  20. c语言朋友圈通信录的设计,手把手教你搞定高逼格朋友圈文案

热门文章

  1. python knn模型_kNN模型(Python3.x环境)
  2. java坦克大战 素材_坦克大战 游戏源码 素材 文档(了解面向对象的具体编程)
  3. 如何操作才能实现音频合并无缝衔接?只要掌握这个技巧
  4. 固态硬盘 游戏测试软件,TxBENCH(SSD固态硬盘检测工具)
  5. 2022电力电缆考试题及答案
  6. imx8 uuu烧录
  7. 软件产品需求分析模板
  8. sql获取当前时间精确到秒的字符串
  9. 【有限元分析】ANSYS workbench CFX风力机外流场计算
  10. python电影推荐系统 github_GitHub - qingtang3009/MovieRecommend: 一个电影推荐系统