一、初识EL表达式
1.概述
Expression Language 表达式语言
2.作用
替换和简化JSP页面中Java代码的编写
3.语法
${表达式}
4.注意
JSP是默认支持并解析EL表达式的,如果要忽略EL表达式则要用以下两种方式:
- 设置JSP的page指令中的isELIgnored=”true” 表示忽略当前JSP页面的所有EL表达式
- \${表达式} 表示忽略当前的这个EL表达式
二、主要使用功能
1.运算功能
算数运算符: + - * /(div) %(mod)
比较运算符: > < >= <= == !=
逻辑运算符: &&(and) ||(or) !(not)
空运算符: empty
功能:用于判断字符串、集合、数组对象是否为null或者长度是否为0
- ${empty list}:判断字符串、集合、数组对象是否为null或者长度为0,是就返回true
- ${not empty str}:表示判断字符串、集合、数组对象是否不为null 并且 长度>0,是就返回true
*2.获取值并直接展示在浏览器页面上
EL表达式可以在域对象中获取值,并且如果拿了个寂寞就返回空字符串,避免了显示null的尴尬
使用规则一:${域名称 . 键名} 从指定域中获取指定值
域名称有:pageScope requestScope sessionScope applicationScope
例如:在request域中存储了nam=小吴
获取:${requestScope.name}
使用规则二:${键名} 表示依次从最小的域中查找是否有该键对应的值,直到找到为止
那么,问题来了,EL表达式可以直接获取值为字符串类型的数据,那对象和集合怎么获取呢?
如何获取对象的属性值
${域名称 . 存储对象时起的键名 . 要获取的对象的属性}
本质:本质上是调用对象类里的get方法
属性:get方法名字后面的第一个字母变成小写的单词,如getName( )的属性是name、getABCDEF( )的属性是ABCDEF,这里,不管getABCDEF( )里面返回的是什么,都会被直接展示到页面上!所以,假如我们要获取一个日期,就可以在实体类中编写一个getBirStr( )方法来返回一个格式化后的日期,然后再在JSP中用EL表达式就可以直接展示中国式日期到浏览器的页面上了!
如何获取List集合里的值
${域名称 . 存储List集合时起的键名[索引]}
注意:如果List集合里存储的是对象,那么 存储集合时起的键名[索引] 这一部分就相当于对象,后面接 . 属性名就可以获取到集合里的对象的对应属性值了!
如何获取Map集合里的键的值
${域名称 . 存储Map集合时起的键名.key名称}
${域名称 . 存储Map集合时起的键名[“key名称”]}
注意:如果Map集合里存储的是对象,那么 存储Map集合时起的键名.key名称 这一部分就相当于对象,后面接 . 属性名就可以获取到集合里的对象的对应属性值了!
3.隐式对象
EL表达式中有11个隐式对象
我们就了解一个pageContext,并且记住它的一个获取虚拟目录的写法
${pageContext . request.contextPath}
将来这行代码可以写在JSP页面的form表单的action属性里需要虚拟目录那个地方,也可以写在重定向需要传虚拟目录那个地方!