只能从四大域里(pageContext、request、session、application)获取数据,并且查找数据的顺序从小到大的范围依次为:pageContext、request、session、application。
在四大域的后面加Scope可在指定域中查找,例如:requestScope.变量名
EL访问实例对象中属性的写法
1.${对象名.属性名}
2.${对象名【‘属性名’】}
注意:EL表达式在获取对象属性时,遇到不存在的对象,并不会报空指针异常,只是不显示而已。
EL访问数组
${数组名【下标】}
注意:在此处,当访问数组的下标越界时不会报错,也只是不显示而已
EL访问List
${List对象名【下标】}
注意:在此处,当访问数组的下标越界时不会报错,也只是不显示而已
另外,EL不可以访问set,因为set没有索引
EL访问Map
${Map对象名.key值}
EL表达式的运算符
- 算术运算符:+ - * / %(++和--不支持)
- 关系运算符:== != < <= > >=
- 逻辑运算符:! || && not and or
- 条件运算符:?:
- 取值运算符: . 【 】
- empty用法:${empty 变量名},当变量,没有定义(或为空串、为nul)时结果为true
EL常用的内置对象(11个)
除了pageContextScope、requestScope、sessionScope、applicationScope外,还有以下四个常用的内置对象:
pageContext(除了pageContext,其余10个都是java.util.Map类型)
该pageContext与JSP中的pageContext是同一个对象
${pageContext.request.contextPath}获得当前web应用的路径
param
获取请求中的指定参数值,底层调用的是request.getParameter()
paramValues
获取请求中的指定参数值的所有值,底层调用的是request.getParameterValues()
initParam
获取初始化参数,底层调用的是servletContext.getInitParameter()
EL自定义函数
EL的自定义函数:
该Java类及其函数,必须在一个扩展名为.tld(标签定义库tag library definition)的xml文件注册
xml文件是需要约束的,需要配置头部文件。可以从以下文件复制:Tomcat安装目录下apache-tomcat-9.0.30\webapps\examples\WEB-INF\jsp2,文件名:jsp2-example-taglib.tld
.tld文件需定义在web项目下的WEB-INF目录下