EL 表达式 = ?
EL是JSP 2.0增加的技术规范,其全称是表达式语言(Expression Language)。EL语言的灵感来自于ECMAScript和XPath表达式语言。EL表达式语言是一种简单的语言,提供了在JSP中简化表达式的方法,目的是为了尽量减少JSP页面中的Java代码,使得JSP页面的处理程序编写起来更加简洁,便于开发和维护。
EL 语法:
在JSP中访问模型对象是通过EL表达式的语法来表达。
所有EL表达式的格式都是以“${}”表示。
例如,${ userinfo)代表获取变量userinfo的值。
当EL表达式中的变量不给定范围时,则默认在page范围查找,然后依次在request、session、application范围查找。
也可以用范围作为前缀表示属于哪个范围的变量,例如:${ pageScope. userinfo)表示访问page范围中的userinfo变量。
EL 取值、取值的优先级:
EL存取变量数据的方法很简单,例如:${username}。它的意思是取出某一范围中名称为username的变量。
因为我们并没有指定哪一个范围的username,所以它会依序从Page、Request、Session、Application范围查找。
EL 表达式从指定的作用域取值:
${pageScope.scope}---${requestScope.scope}---${sessionScope.scope}---${applicationScope.scope}
EL 表达式可以解析基本数据类型、对象类型、复合对象类型、Map、List
${list[0]} ---- ${map.address} ---- ${user.realname} ---- ${user["realname"]} ---- ${user.addr.town}
※ 当要存取的属性名称中包含一些特殊字符,如 . 或 - 等并非字母或数字的符号,就一定要使用“[" "]“。
例如:${ user. My-Name}应当改为${user["My-Name"]}
EL 请求参数的数据:param、paramValues:
${param.name}
${paramValues.fav[1]}
EL 表达式可以做为空判断:空字符串、null、空map、空list 返回结果为true
request.setAttribute("aaa", "");
${empty aaa}
pageContext.setAttribute("scope", "pageContext");
${empty pageScope}
EL 表达式可以做基本的逻辑运算,和数学运算:
${5+4}---${5-4}---${5*4}---${5/4}---${5%4}---
${5<4}---${5>4}---${5<=4}---${5>=4}---${5+"4"}---${5 le 4}---${5 eq 4}
※EL 表达式没有字符串拼接的概念,也没有字符的概念
EL 表达式中pageContext可以获取pageContext作用域对象本身
${pageContext}