1.语法结构 ${expression}2.[]与.运算符 EL 提供.和[]两种运算符来存取数据。pageScope, requestScope, sessionScope, appliationScope都可以看作是Map型变量,调用其中的数据可以使用${pageScope.name}或${pageScope["name"]}的形式,这两种写法是等价的。在某些情况下只能使用${pageScope["content-type"]},这里不能写成${pageScope.content-type},jsp无法解析连字符(-)会出现错误。 当要存取的属性名称中包含一些特殊字符,如.或?等并非字母或数字的符号,就一定要使用 []。例如: ${user.My-Name} 应当改为 ${user["My-Name"] } 如果要动态取值时,就可以用[]来做,而.无法做到动态取值。例如: ${sessionScope.user[data]}中data 是一个变量3.变量 使用el的时候,默认会以一定顺序搜索四个作用域,将最先找到的变量值显示出来。如果我们有${username}这样一个正则表达式,它回去依次调用pageContext.getAttribute("username") -> request.getAttribute("username") -> session.getAttribute("username") -> application.getAttribute("username"),只要找到某一个不为空的值就立刻返回。这样的确方便我们的操作,但是随之也出现了另外一个问题,如果pageContext和request中有同名变量,但是我想取得request中的变量该如何是好呢?这就需要为el表达式引入作用域的概念了。${pageScope.username}${requestScope.username}
在jsp里面首先定义一个变量<% int a=8; %>用jsp里面自带的表达式是这样把a输出的<% =a; %>但是用EL表达式的话应该这样输出 ${a}, 这里需要注意的是没有“=”,并且没有分号“;”