14.3. EL隐含对象

上面值表达式的例子中EL表达式的基都是托管Bean、数组、List元素或者Map条目,其实除了这些用户创建的应用程序对象外,由容器自动管理的隐式对象也可以被值表达式访问。通过EL可以使用的隐式对象如下表:

表 14.2. 通过EL可以使用的隐式对象

隐式对象类型说明举例
applicationScopeMap应用作用域变量的Map,以名称作为关键字 #{applicationScope.myVariable}
cookie Map一个当前请求的cookie值的Map,以cookie名称作为关键字 #{cookie.myCookieVariable}
facesContextFacesContext当前请求的FacesContext实例#{facesContext}
headerMap当前请求的HTTP首部值的 Map,以header名称作为关键字。如果给定的header 名称有多个值,仅返回第1个值#{header['User-Agent']}
headerValuesMap当前请求的HTTP首部值的 Map,以header名称作为关键字。对每个关键字,返回一个String数组 #{headerValues['Accept-Encoding'][3]}
initParamMap应用初始化参数的Map,以参数名称为关键字(也称为servlet上下文初始化参数,在部署描述符中设置)#{initParam.adminEmail}
paramMap请求参数的Map,以header名称作为关键字。如果对给定的参数名称有多个值,仅返回第1个值#{param.address}
paramValuesMap请求参数的Map,以header名称作为关键字。对每个关键字,返回一个String数组#{param.address[2]}
requestScopeMap请求范围内的变量的Map,以名称作为关键字#{requestScope.userPreferences}
sessionScopeMap会话范围内的变量的Map,以名称作为关键字#{sessionScope['user']}
viewUIViewRoot当前视图#{view.locale}、#{view.renderKitId}