1.什么是EI表达式:
EL(ExpressionLanguage):表达式语言的灵感来自于ECMAScript和XPath表达式语言,它提供了在JSP中简化表达式的方法。
2.EI表达式的特点和使用范围:
使用范围:
EL 提供了在 JSP 脚本编制元素范围外使用运行时表达式的功能。
它是一种简单的语言,基于可用的 命名空间 (PageContext 属性)、嵌套属性和对集合、 操作符 (算术型、关系型和逻辑型)的访问符、映射到 Java 类中 静态方法 的可扩展函数以及一组隐式对象。特点:
1.自动转换类型。
2.为了使JSP写起来更加简单。
3.EI表达式的语法:
1、语法结构
${expression}
2、[ ]与.运算符
EL 提供“.“和“[ ]“两种运算符来存取数据。
当要存取的属性名称中包含一些特殊字符,如 . 或 - 等并非字母或数字的符号,就一定要使用“[ ]“。例如:
${ user. My-Name}应当改为${user["My-Name"]}
如果要动态取值时,就可以用“[ ]“来做,而“.“无法做到动态取值。例如:
${sessionScope.user[data]}中data 是一个 变量
3、 变量
EL存取 变量数据的方法很简单,例如:${username}。它的意思是取出某一范围中名称为username的 变量。
因为我们并没有指定哪一个范围的username,所以它会依序从Page、Request、Session、Application范围查找。
假如途中找到username,就直接回传,不再继续找下去,但是假如全部的范围都没有找到时,就回传null。
属性范围在EL中的名称
Page PageScope
Request RequestScope
Session SessionScope
Application ApplicationScope
5.EI表达式隐式对象:
EL( 表达式语言 ) 隐式对象 (11) :
pageContext
对应于 JSP 页面中的 pageContext 对象(注意:取的是 pageContext 对象。)
pageScope
代表 page 域中用于保存属性的 Map 对象
requestScope
代表 request 域中用于保存属性的 Map 对象
sessionScope
代表 session 域中用于保存属性的 Map 对象
applicationScope
代表 application 域中用于保存属性的 Map 对象
param
表示一个保存了所有请求参数的 Map 对象
paramValues
表示一个保存了所有请求参数的 Map 对象,它对于某个请求参数,返回的是一个 string[]
header
表示一个保存了所有 http 请求头字段的 Map 对象
headerValues
同上,返回 string[] 数组。注意:如果头里面有 “-” ,例 Accept-Encoding ,则要
headerValues[“Accept-Encoding”]
cookie
表示一个保存了所有 cookie 的 Map 对象
initParam
表示一个保存了所有 web 应用初始化参数的 map 对象