EL 全名为Expression Language。
${EL标识符}
作用:
获取数据:
•EL表达式主要用于替换JSP页面中的脚本表达式,以从各种类型的web域 中检索java对象、获取数据。(某个web域 中的对象,访问javabean的属性、访问list集合、访问map集合、访问数组)
执行运算:
•利用EL表达式可以在JSP页面中执行一些基本的关系运算、逻辑运算和算术运算,以在JSP页面中完成一些简单的逻辑运算。${user==null}
获取web开发常用对象
•EL 表达式定义了一些隐式对象,利用这些隐式对象,web开发人员可以很轻松获得对web常用对象的引用,从而获得这些对象中的数据。
调用Java方法
•EL表达式允许用户开发自定义EL函数,以在JSP页面中通过EL表达式调用Java类的方法。
原理:
lEL表达式语句在执行时,会调用pageContext.findAttribute方法,用标识符为关键字,分别从page、request、session、application四个域中查找相应的对象,找到则返回相应对象,找不到则返回”” (注意,不是null,而是空字符串)。
使用:
获取数据:
${user.address.city} --获取javabean中的属性(属性address为javabean )的属性
${user.list[0]} --访问有序集合某个位置的元素
${map.key} --获得map集合中指定key的值
执行运算:
EL表达式支持如下运算符:
${empty(list) } --empty()运算,检查对象是否为null或“空”
${user!=null?name : “”} --二元表达式, (true|false):true?false
EL表达式中的11个隐含对象
隐含对象名称 | 描 述 |
pageContext | 对应于 JSP页面 中的 pageContext对象 (注意:取的是pageContext对象。) |
pageScope | 代表 page域 中用于保存属性的 Map对象 |
requestScope | 代表 request 域中用于保存属性的 Map对象 |
sessionScope | 代表 session 域中用于保存属性的 Map对象 |
applicationScope | 代表 application 域中用于保存属性的 Map对象 |
param | 表示一个保存了所有请求参数的Map对象 |
paramValues | 表示一个保存了所有请求参数的Map对象,它对于某个请求参数,返回的是一个string[] |
header | 表示一个保存了所有http请求头字段的Map对象 |
headerValues | 同上,返回string[]数组。注意:如果头里面有“-” ,例Accept-Encoding,则要headerValues[“Accept-Encoding”] |
cookie | 表示一个保存了所有cookie的Map对象 |
initParam | 表示一个保存了所有web应用初始化参数的map对象 |