一.简介
只有支持Servlet 2.4 / JSP2.0 的Container,才可以在JSP 网页中直接使用EL 。
EL语法:
(1) ${ }
表示取出某个域内某个变量的值,不指定范围,则由page-->request-->session-->application找下去,
若中途找到就返回值,若所有域中都没有则返回null
也可以指定域:eg.${sessionScope.user}表示从session中获取user的sex属性值
具体如下:
Page pageScope
Request requestScope
Session sessionScope
Application applicationScope
pageScope、requestScope、sessionScope、applicationScope是EL的隐含对象
(2) .与 [ ]存取数据
eg.${sessionScope.user.sex }等价于${sessionScope.user["sex"] }
有以下两种情况建议使用[]
a.属性名称中包含一些特殊字符,如. 或 – 等并非字母或数字的符号,一定要用[]
b.${sessionScope.user.[propertyName] },其中propertyName为变量,通过该变量的不同值实现动态取值时也一般用[]
(3)自动类型转换
用request.getParameter("count")获取的String值,若要运算还要进行类型转换,但是可以直接${param.cout+10 }
具体如何类型间转换的不细说,自己找吧!
二.EL隐含对象
EL中隐含对象如下:
PageContext 表示此JSP 的PageContext
PageScope 取得Page范围的属性名称所对应的值
RequestScope 取得Request 范围的属性名称所对应的值 用来去范围类的属性值,其类型都java.util.Map
sessionScope 取得Session 范围的属性名称所对应的值
applicationScope 取得Application 范围的属性名称所对应的值
param 等同ServletRequest.getParameter(Stringname),回传String 类型的值 用来获取用户的请求参数
paramValues 等同ServletRequest.getParameterValues(String name),回传String 类型的值(获取复选框值)
header 等同ServletRequest.getHeader(String name)
headerValues 等同ServletRequest.getHeaders(String name)
cookie 等同HttpServletRequest.getCookies( )
initParam 等同ServletContext.getInitParameter(Stringname)
三.EL的各种运算符(略)