EL表达式 Expression Language
EL表达式基本格式是:${},大括号里面可以使用a.b的形式,也可以使用a["b"]的形式(中括号里面的属性名需要用引号括起来,属性名是变量的时候,不用引号括起来。)。两种形式可以通用,但是在下面两种情况是只能使用中括号。
1.要取的属性里面包含特殊的字符串,例如${user.["first-name"]},因为first-name包含特殊字符,所以只能使用中括号的形式。
2.通过变量动态取值。例如${user[param]},当param是一个变量的时候,就只能使用中括号的形式。
EL变量对应着JSP的内置对象(四大作用范围,左边是JSP,右边是EL名称):
Page => PageScope
Request => RequestScope
Session => SessionScope
Application => ApplicationScope
如果EL变量里面没有写范围的话(类似于${username}),那么会默认的从PageScope, RequestScope, SessionScope, ApplicationScope中去寻找(从小到大),没有找到的话就会输出一个空字符串(“”)。
EL存在自动类型转换,“+”运算只是进行算术运算,并没有拼接字符串的含义。拼接字符串使用concat函数,使用方式如下:
<c:if test="${'p'.concat(longValue)=='p1'}">some text</c:if>
EL3.0提供了字符串拼接运算符"+=",例子如下:
<c:if test="${('p'+=longValue)=='p1'}">some text</c:if>