EL学习

EL学习心得

1、格式

${object["propertyName"]}

${object.propertyName}

EL表达式以${开头以}结尾,[]和.运算符功能相似,[]比较常用。如果propertyName不是有效的java变量名称,则只能用[]。

2、EL隐式对象

JSP 表达式语言定义了一组隐式对象,其中许多对象在 JSP scriplet 和表达式中可用:
pageContext
JSP 页的上下文。它可以用于访问 JSP 隐式对象,如请求、响应、会话、输出、servletContext 等。例如,${pageContext.response} 为页面的响应对象赋值。
此外,还提供几个隐式对象,允许对以下对象进行简易访问:
术语
定义
param
将请求参数名称映射到单个字符串参数值(通过调用 ServletRequest.getParameter (String name) 获得)。getParameter (String) 方法返回带有特定名称的参数。表达式 ${param . name}相当于 request.getParameter (name)。
paramValues
将请求参数名称映射到一个数值数组(通过调用 ServletRequest.getParameter (String name) 获得)。它与 param 隐式对象非常类似,但它检索一个字符串数组而不是单个值。表达式 ${paramvalues. name} 相当于 request.getParamterValues(name)。
header
将请求头名称映射到单个字符串头值(通过调用 ServletRequest.getHeader(String name) 获得)。表达式 ${header. name} 相当于 request.getHeader(name)。
headerValues
将请求头名称映射到一个数值数组(通过调用 ServletRequest.getHeaders(String) 获得)。它与头隐式对象非常类似。表达式 ${headerValues. name} 相当于 request.getHeaderValues(name)。
cookie
将 cookie 名称映射到单个 cookie 对象。向服务器发出的客户端请求可以获得一个或多个 cookie。表达式 ${cookie. name .value} 返回带有特定名称的第一个 cookie 值。如果请求包含多个同名的 cookie,则应该使用 ${headerValues. name} 表达式。
initParam
将上下文初始化参数名称映射到单个值(通过调用 ServletContext.getInitparameter(String name) 获得)。
除了上述两种类型的隐式对象之外,还有些对象允许访问多种范围的 变量,如 Web 上下文、会话、请求、页面:
术语
定义
pageScope
将页面范围的变量名称映射到其值。例如,EL 表达式可以使用 ${pageScope.objectName} 访问一个 JSP 中页面范围的对象,还可以使用 ${pageScope .objectName. attributeName} 访问对象的属性。
requestScope
将请求范围的变量名称映射到其值。该对象允许访问请求对象的属性。例如,EL 表达式可以使用 ${requestScope. objectName} 访问一个 JSP 请求范围的对象,还可以使用 ${requestScope. objectName. attributeName} 访问对象的属性。
sessionScope
将会话范围的变量名称映射到其值。该对象允许访问会话对象的属性。例如:
${sessionScope. name}
applicationScope
将应用程序范围的变量名称映射到其值。该隐式对象允许访问应用程序范围的对象。

pageContext  

包含所有其他的JSP隐式对象

 ${pageContext.request.queryString}         取得请求的参数字符串
 ${pageContext.request.requestURL}          取得请求的URL,但不包括请求之参数字符串
 ${pageContext.request.contextPath}         服务的web application 的名称
 ${pageContext.request.method}              取得HTTP 的方法(GET、POST)
 ${pageContext.request.protocol}            取得使用的协议(HTTP/1.1、HTTP/1.0)
 ${pageContext.request.remoteUser}          取得用户名称
 ${pageContext.request.remoteAddr }         取得用户的IP 地址
 ${pageContext.session.new}                 判断session 是否为新的
 ${pageContext.session.id}                  取得session 的ID
 ${pageContext.servletContext.serverInfo}   取得主机端的服务信息

有作用范围的对象也可以用一个没有指定范围的EL表达式进行访问,在这种情况下,JSP容器将会返回在PageContext、ServletRequest、

HttpSession、ServletContext中第一次识别到的指定对象。搜索顺序从最小范围(PageContext)开始,到最大范围(ServletContext)。

例如

${requestScope.userlist} 1
${sessionScope.userlist} 2
${applicationScope.userlist} 3
${pageScope.userlist} 4
${uselist} 含义:搜索顺序为4 1 2 3。
 

3、使用其他EL运算符

1.算术运算符有五个:+、-、*或$、/或div、%或mod
2.关系运算符有六个:==或eq、!=或ne、<或lt、>或gt、<=或le、>=或ge
3.逻辑运算符有三个:&&或and、||或or、!或not
4.条件运算符:${statement?A:B}
5.empty运算符:检验一个值是否为null或者为空,${empty x} 如果x为null,或者x是一个长度为0的字符串,则返回true。如果x是
一个空的Map、空数组或空集合,它也是返回true,否则返回false
   
4、关闭EL运算
<%@ page isELIgnored="true" %>

例子:利用EL来打印处于另一个javaBean(Employee)的一个JavaBean(Address)属性、Map的内容、HTTP标头及session标识符的id。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值