什么是 EL 表达式,EL 表达式的作用?

  1. EL 表达式的全称是:Expression Language。是表达式语言。
  2. EL 表达式的什么作用:EL 表达式主要是代替 jsp 页面中的表达式脚本在 jsp 页面中进行数据的输出。
  3. 因为 EL 表达式在输出数据的时候,要比 jsp 的表达式脚本要简洁很多



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

    EL 表达式在输出 null 值的时候,输出的是空串。jsp 表达式脚本输出 null 值的时候,输出的是 null 字符串。

EL 表达式搜索域数据的顺序

EL 表达式主要是在** jsp **页面中输出数据。

主要是输出域对象中的数据。

当四个域中都有相同的 key 的数据的时候,EL 表达式会按照四个域的从小到大的顺序去进行搜索,找到就输出。

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

需求——输出 Person 类中普通属性,数组属性。list 集合属性和 map 集合属性。



分别在Person对象中对属性进行赋值


一下是对用EL表达式获取Person对象中得属性

EL 表达式——运算

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

关系运算

关系运算符 说明 范例 结果
== 或 eq 等于 ${ 5 == 5 } 或 ${ 5 eq 5 } true
!= 或 ne 不等于 ${ 5 !=5 } 或 ${ 5 ne 5 } false
< 或 lt 小于 ${ 3 < 5 } 或 ${ 3 lt 5 } true
> 或 gt 大于 ${ 2 > 10 } 或 ${ 2 gt 10 } false
<= 或 le 小于等于 ${ 5 <= 12 } 或 ${ 5 le 12 } true
>= 或 ge 大于等于 ${ 3 >= 5 } 或 ${ 3 ge 5 } false

逻辑运算

逻辑运算符 说明 范例 结果
&& 或 and 与运算 ${ 12 == 12 && 12 < 11 } 或 ${ 12 == 12 and 12 < 11 } false
|| 或 or 或运算 ${ 12 == 12
! 或 not 取反运算 ${ !true } 或 ${not true } false

算数运算

算数运算符 说 明 范 例 结果
+ 加法 ${ 12 + 18 } 30
- 减法 ${ 18 - 8 } 10
* 乘法 ${ 12 * 12 } 144
/或 div 除法 ${ 144 / 12 } 或 ${ 144 div 12 } 12
% 或 mod 取模 ${ 144 % 10 } 或 ${ 144 mod 10 } 4

empty 运算

empty 运算可以判断一个数据是否为空,如果为空,则输出 true,不为空输出 false。

以下几种情况为空:

1、值为 null 值的时候,为空

2、值为空串的时候,为空

3、值是 Object 类型数组,长度为零的时候

4、list 集合,元素个数为零

5、map 集合,元素个数为零

三元运算

表达式 1?表达式 2:表达式 3

如果表达式 1 的值为真,返回表达式 2 的值,如果表达式 1 的值为假,返回表达式 3 的值。

示例:

${ 12 != 12 ? "国哥帅呆":"国哥又骗人啦" }

这句则会输出 国哥又骗人拉

“.”点运算 和 [] 中括号运算

.点运算,可以输出 Bean 对象中某个属性的值。

[]中括号运算,可以输出有序集合中某个元素的值。

并且[]中括号运算,还可以输出 map 集合中 key 里含有特殊字符的 key 的



EL 表达式的 11 个隐含对象

EL 个达式中 11 个隐含对象,是 EL 表达式中自己定义的,可以直接使

变量 类型 作用
pageContext PageContextImpl 它可以获取 jsp 中的九大内置对
pageScope Map<String,Object> 它可以获取 pageContext 域中的数
requestScope Map<String,Object> 它可以获取 Request 域中的数据
sessionScope Map<String,Object> 它可以获取 Session 域中的数据
applicationScope Map<String,Object> 它可以获取 ServletContext
param Map<String,String> 它可以获取请求参数的值
paramValues Map<String,String[]> 它也可以获取请求参数的值,获取多个值的时候使用。
header Map<String,String> 它可以获取请求头的信息
headerValues Map<String,String[]> 它可以获取请求头的信息,它可以获取多个值的情况
cookie Map<String,Cookie> 它可以获取当前请求的 Cookie 信
initParam Map<String,String> 它可以获取在 web.xml 中配置的上下文参数

EL 获取四个特定域中的属性


pageScope ====== pageContext 域

requestScope ====== Request 域

sessionScope ====== Session 域

applicationScope ====== ServletContext 域

pageContext 对象的使用

  1. 协议:
  2. 服务器 ip:
  3. 服务器端口:
  4. 获取工程路径:
  5. 获取请求方法:
  6. 获取客户端 ip 地址:
  7. 获取会话的 id 编号:

    将 request对象 保存到 pageContext 域中

EL 表达式其他隐含对象的使用

param Map<String,String> 它可以获取请求参数的值

paramValues Map<String,String[]> 它也可以获取请求参数的值,获取多个值的时候使用。


header Map<String,String> 它可以获取请求头的信息

headerValues Map<String,String[]> 它可以获取请求头的信息,它可以获取多个值的情况


cookie Map<String,Cookie> 它可以获取当前请求的 Cookie 信息


initParam Map<String,String> 它可以获取在 web.xml 中配置的上下文参数

JSTL 标签库(次重点****)

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

签库。

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

变得更佳简洁


JSTL 由五个不同功能的标签库组成。



在 jsp 标签库中使用 taglib 指令引入标

CORE 标签库

JSTL 标签库的使用步骤

1、先导入 jstl 标签库的 jar 包。

taglibs-standard-impl-1.2.1.jar

taglibs-standard-spec-1.2.1.jar

2、第二步,使用 taglib 指令引入标签库。

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


<c:if />


<c:choose> <c:when> <c:otherwise>标签

作用:多路判断。跟 switch ... case .... default 非常接


<c:forEach /


遍历 Object 数组


遍历 Map 集合


遍历 List 集合---list 中存放 Student 类,有属性:编号,用户名,密码,年龄,电话信息



最新文章

  1. 使用ikmv将jar转换为dll,在.NET中直接调用
  2. SQLServer学习笔记系列11
  3. The Bottom of a Graph-POJ2553强连通
  4. asp.net ajax与jquery的冲突问题解决
  5. Unity随记
  6. (转)sscanf() - 从一个字符串中读进与指定格式相符的数据
  7. How do I reset Windows Update components?
  8. iOS学习笔记---oc语言第十天
  9. 关于css伪类:hover的用法
  10. 高级UIKit-05(CoreData)
  11. 数据模型LP32 ILP32 LP64 LLP64 ILP64
  12. IdentityModel 中文文档(v1.0.0) 目录
  13. 0.Git介绍
  14. 【前端】js中数组对象根据内容查找符合的第一个对象
  15. [再寄小读者之数学篇](2014-04-08 from 1297503521@qq.com $\sin x-x\cos x=0$ 的根的估计)
  16. 使用sed在匹配行之后增加一行数据
  17. vue好用的图片查看器(v-viewer插件)
  18. dd、split、csplit命令
  19. Linux服务器评测脚本 中文IO脚本简单易懂
  20. java中常用工具类

热门文章

  1. 使用Flex实现图片旋转。
  2. 13.6Comparable接口
  3. Quartz:Quartz任务异常处理方式
  4. SoapUI Pro 最新版本和最新功能
  5. VisibleDeprecationWarning , Creating an ndarray from ragged nested sequences... 警告怎么办
  6. Vue数据双向绑定不起作用、Vue如何正确的手动添加json数据、Vue视图层不刷新、手动刷新视图层
  7. RWLock——一种细粒度的Mutex互斥锁
  8. ArcnLinux安装基础配置(二)
  9. RPC远程协议之Thrift入门
  10. groff编写man页