一、EL 表达式
EL 为表达式语言(Expression Language),可以简化对变量或对象的访问
语法 :所有的表达式以”${”开始,以”}”结束。 ${ }
二、JSP EL 表达式用于以下情形
1、静态文本( JavaScript脚本在jsp中属于静态内容)
2、标准标签和自定义标签
注意:EL不能在脚本元素中使用 脚本元素指的是 <% Java 代码 %>
三、使用EL表达式获取数据
EL使用”[ ]”和”.”操作符来访问数据
对于连字符(-)或者其它特殊字符的字符串只能用“[ ]”操作符,而不能用“.”操作符,这也是“[ ]”和“.”操作符的区别 如 ${header[“User-Agent”]}
EL表达式的操作内容可以是:常量、变量、jsp隐含对像
EL表达式还提供了对操作内容的运算:属性取值、运算、逻辑运算
EL表达式的操作结果会自动输出到输出流对像中
EL 表达式只能通过内置对象取值,也就是只读操作
四、EL 运算符
(1)、EL 算术运算符 + - * /(div) %(mod)
(2)、EL 关系运算符 ==(eq) !=(ne) <(lt) <=(le) >(gt) >=(ge)
(3)、EL 逻辑运算符 &&(and) ||(or) !(not)
(4)、EL 其他运算符
1) empty 运算符 用来判断值是否为null 或空的
2) 条件运算符 ${ A ? B : C} 意思是说,当A 为true 时,执行B;而A 为false 时,则执行C
3) () 括号运算符 用来改变执行优先权,例如: ${ A * (B+C) }
写法
el的写法${person.name}
完整的el的写法的含义:${requestScope.person.name}
在request作用域中查找 key: person的数据
等效于:request.getAttribute("person")
.name, 等效于: getName()
作用域
如果不写作用域,会先在page作用域中查getAttribute("person"),
如果没有找到数据,再到request.getAttribute("person")
以此类推session.getAttribute("person")