EL表达式
1.EL表达式
[1] 简介
- JSP的表达式 <%=变量或者对象 %>- JSP表达式的作用:向页面中输出内容
- EL表达式也是向页面中输出内容
- 在JSP2.0的时候,不建议使用JSP的表达式和JSP的脚本片段
- 我们使用EL表达式去替换JSP的表达式,使用自定义标签去替换JSP脚本片段。
- 我们在以后的开发中尽量使用EL表达式和自定义标签,但是也会偶尔使用JSP的脚本片段。
[2] 基本语法
- ${输出的内容 }- 可以用来获取域对象中的属性(***********很重要很重要)
- 获取域对象中的属性方式: ${属性名 }
- 如果EL表达式中的内容是null,那么没有任何东西输出到页面中。
- 如果有多个域中存在相同名称的属性,那么我们在通过${属性名 }的方式去获取域中的属性,
EL表达式会做一个全域的查询(在四个域中都会去查找)。
- EL表达式做全域查找的时候遵循一个由小到大顺序去查询
例如:首先到page域中去查找,如果查找到则输出
如果查找不到,则到request域中去查找,如果查找到则输出
如果查找不到,则到session域中去查找,如果查找到则输出
如果查找不到,则到application域中去查找,如果查找到则输出
如果查找不到,则什么都不会输出。
- 如果多个域中有相同的属性,那么如果我们要获取指定域中的属性,可以通过如下的方式获取
${域的名字.属性名 }
域对象 域
pageContext pageScope
request requestScope
session sessionScope
application applicationScope
- 如果我们域中的属性是一个对象,我们想要获取该对象的属性,那么我们可以通过如下的方式获取:
${对象.属性名 }
${stu.address.street }
- 一些特殊的属性名 例如 request.setAttribute("Hello-Kitty", "Tomcat");
我们在获取属性的时候就不能通过${Hello-Kitty }去获取。
这个时候我们可以通过如下的方式去获取:
${域的名称['属性的名称'] }
${requestScope['Hello-Kitty'] }
- 如果我们域中的属性是一个Map集合,我们可以通过如下的方式获取map集合中的值:
${map集合对象.键的名称}
${map集合对象['键的名称']}
- 如果我们域中的属性是一个List集合,我们可以通过如下的方式获取List集合中的元素
${List集合对象[索引] }
[3] EL表达式中的11隐含对象
- pageContext类型:PageContext
代表:和jsp中pageContext是一个东西,代表当前jsp页面的上下文信息
作用:获取其他8个jsp的隐含对象
${pageContext.request } 获取request对象
${pageContext.request.contextPath } 获取项目的根路径
- pageScope
类型:Map<String,Object>
代表:代表page域
作用:用来存储存入到page域中的属性
- requestScope
类型:Map<String,Object>
代表:代表request域
作用:用来存储存入到request域中的属性
- sessionScope
类型:Map<String,Object>
代表:代表session域
作用:用来存储存入到session域中的属性
- applicationScope
类型:Map<String,Object>
代表:代表application域
作用:用来存储存入到application域中的属性
- param
类型:Map<String,String>
代表:代表请求参数
作用:可以用来获取请求参数
${param.请求参数名 }
- paramValues
类型:Map<String,String[]>
代表:代表请求参数,一个请求参数可以对应多个值
作用:可以用来获取请求参数的多个值。
- header
类型:Map<String,String>
代表:代表请求头信息
作用:获取请求头信息
- headerValues
类型:Map<String,String[]>
代表:代表请求头信息,一个请求头可以对应多个值
作用:获取请求头信息的多个值
- initParam
类型:Map<String,String>
代表:代表整个应用程序的初始化参数
作用:获取整个应用程序的初始化参数
- cookie
类型:Map<String,Cookie>
代码:代表Cookie的信息
作用:获取Cookie的信息
[4] 运算
- 在EL表达式中可以做运算${100-46 }
- empty运算符
既可以判断字符串是否为null,还可以判断字符串内容是否为空"";
如果字符串为null或者字符串是空串"",那么返回值是true
- == 只能比较字符串对象是否为null
- empty运算符还能够判断List集合和Map集合元素是否为空。
本文来自博客园,作者:diligently,转载请注明原文链接:https://www.cnblogs.com/luo12828-foxmail/p/16964175.html
【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· 无需6万激活码!GitHub神秘组织3小时极速复刻Manus,手把手教你使用OpenManus搭建本
· C#/.NET/.NET Core优秀项目和框架2025年2月简报
· Manus爆火,是硬核还是营销?
· 终于写完轮子一部分:tcp代理 了,记录一下
· 【杭电多校比赛记录】2025“钉耙编程”中国大学生算法设计春季联赛(1)