1、什么是EL?
Ø EL是JSP表达式语言,全称是Expression Language
l 使用EL的目的是简化在JSP中访问变量的方式,简单静态HTML与Java代码的耦合
l JSP EL 表达式用于以下情形
Ø 静态文本
Ø 标准标签和自定义标签
Ø 安装支持Servlet2.4/JSP2.0的Container
2、基本语法格式:
${ EL Expression}
l 示例:
Ø ${ “Hello world” } //输出字符串常量
Ø ${ str } //输出字符串变量str的值
Ø ${ 3 + 2 } //输出3+2的结果
Ø ${ user.name } //输出user对象的name属性
Ø ${ user[“name”] } //同上
Ø ${ sessionScope[“user”].name } //同上
Ø ${user.name}
Ø 访问对象user的getName()方法以得到name成员的值。
Ø ${list[1]}
Ø 访问list对象的第二项。
Ø ${map[“key”]}
Ø 访问map指定键的值。
l “.”与”[ ]”的相同点和差别。
l 都可以访问对象有属性。
l 差别:
Ø 当属性的名字包含有空格,点号等复杂符号时。使用”.”来访问对象有属性将会出现异常
l 操作符
Ø 算术操作符(+,-,*,/,%)
Ø 逻辑操作符(&&,||,!或and,or,not)
Ø XML操作符
l lt <
l le <=
l gt >
l ge >=
Ø 比较操作符(>,>=,<,<=,==,!==)—可以自动转换数据类型
Ø 空操作符(empty)//当值为null时返回true
l 集合访问
Ø 数组访问
${} //如request.getAttribute(“name”);
Ø List访问
Ø Map访问
隐式对象 |
pageContext |
cookie |
initParam |
paramValues |
param |
header |
headerValues |
applicationScope |
requestScope |
sessionScope |
pageScope |
类别 | 标识 | 描述 |
JSP | pageContext | PageContext 实例,如 ${pageContext.request.requestURL} 取得请求的URL,但不包括请求之参数字符串 |
作用域 | pageScope requestScope sessionScope applicationScope | 取得page范围的属性名称对应的值(request.getAttribute(“name”)) request/session/application 返回类型为 Map |
类别 | 标识 | 描述 |
请求参数 | param paramValues | 如同 request.getParameter(“name”) 如同 request.getParameterValues(“name”) |
请求头 | header headerValues | 如同 request.getHeader(String name) 回传string 如同 request.getHeaders(String name)….string[ ] |
Cookie | cookie | 按名称存储请求附带的 cookie 的 Map 类 cookie.name.value name为一个cookie对象的名字 |
初始化参数 | initParam | application.getInitParameter("userid"); 需要在web.xml中配制context-param |
pageContext:提供对页面属性的访问 |
param:返回客户端的请求参数的字符串值 |
paramValues:返回映射至客户端的请求参数的一组值 |
pageScope:返回页面范围的变量名,这些名称已映射至相应的值 |
requestScope:返回对请求对象的属性的访问权限 |
sessionScope:返回会话范围的变量名,这些名称已映射至相应的值 |
applicationScope:返回应用范围内的变量,并将变量名映射至相应的值 |
header:返回一个请求标题名称,然后将该值映射至单个字符串值 |
headerValues:返回映射至请求标题的一组值 |
cookie:返回映射至单个 Cookie 对象的 Cookie 名称 |
initParam:返回映射至单个值的上下文初始化参数名称 |
l 忽略 JSP 中 EL 表达式的执行
l 禁用 EL 计算的语法为:
<%@ page isELIgnored ="true|false" %>