表达式语言,JSP2.0最重要的特性之一。
语法
EL表达式的结构: ${ expression }
它也可以用来连接两个表达式:${a+b}${c+d}
关键字:
and |
eq |
gt |
true |
instanceof |
or |
ne |
le |
false |
empty |
not |
lt |
ge |
null |
mod |
[]和.运算符
EL表达式可以返回任意类型的值。返回一个带有属性的对象可以使用[]或.运算符来访问该属性。
${object["propertyName"]}
${object.propertyName}
如果propertyName不是有效的Java变量名,既属性名称中含有特殊字符,只能用[]运算符。
${user["My-Name"]}
如果对象的属性碰巧返回带有属性的另一个对象,则既可以用[],也可以用.运算符来访问第二个对象的属性。
${pageContext["request"]["servletPath"]}
${pageContext.request["servletPath"]}
${pageContext.request.servletPath}
${pageContext["request"].servletpath}
EL隐式对象
表达式语言中含有11个隐式对象
pageScope |
它将给定的属性名称与页面作用域中设置的值进行映射 |
requestScope |
它将使用请求范围中设置的值映射给定的属性名称 |
sessionScope |
它将使用在会话作用域中设置的值映射给定的属性名称 |
applicationScope |
它将使用应用程序作用域中设置的值映射给定的属性名称 |
param |
它将请求参数映射到单个值 |
paramValues |
它将请求参数映射到值的数组 |
header |
它将请求头名称映射到单个值 |
headerValues |
它将请求头名称映射到值数组 |
cookie |
它将给定的cookie名称映射到cookie值 |
initParam |
它映射初始化参数 |
pageContext |
它提供对许多对象的访问请求,会话等。 |
参考示例
pageContext包含了所有jsp内置对象,如获取当前的ServletRequest:
${pageContext.request}
initParam用于获取上下文参数的值
${initParam.password}
param用于获取请求参数值
${param.userName}
paramValues可以获取一个请求参数的多个值
${paramValues.selectedOptions[0]}
header表示一个包含所有请求标题的Map
${header.connection}
cookie可以用来获取一个cookie
${cookie.jsessionid.value}
${cookie.jsessionid.path}
EL运算符
算术运算符 |
加法(+)、减法(-)、乘法(*)、除法(/)、取余/取模(%和mod) |
逻辑运算符 |
和(&&和and)、或(||和or)、非(!和not) |
关系运算符 |
等于(==和eq)、不等于(!=和ne)、大于(>和gt)、大于或等于(>=和ge)、小于(<和lt)、小于或等于(<=和le) |
empty运算符 |
用来检某一个值是否为null或empty |