EL简介:
EL全名为Expression Language,它原本是JSTL1.0为方便存取数据所自定义的语言,当时EL只能在JSTL标签中使用,
<c:out value="${3+7}">
程序执行结果为10,但是你却不能直接在JSP网页中使用:
<p>Hi! ${username}</p>
到了JSP2.0之后,EL已经正式纳入成为标准规范之一,因此,只要是支持Servlet2.4/JSP2.0的Container,就都可以在JSP网页中直接使用EL了。
1.EL语法:
EL语法很简单,他最大的特点就是使用上很方便。
${sessionScope.user.sex}
(从session的范围中取得用户的性别,按照jsp的语法写如下:)
User user = (User)session.getAttribute("user");String sex = user.getSex();
所有EL都是以${为起始、以}为结尾的
. 与 [ ] 运算符
EL提供,和 [ ] 两种运算符来存取数据。下面两者所代表的意思是一样的
${sessionScope.user.sex}
等于
${sessionScope.user["sex"]}
. 与 [ ] 也可以同时混合使用
${sessionScope.shoppingCart[0].price}
回传结果为shoppingCart中第一项物品的价格
如果域对象中的属性名带有特殊字符,则使用 [ ]运算符会很方便
name:${sessionScope["com.demo.customer"].name}
2.EL变量
例如:${username},它的意思是取出某一范围中名称为username的变量,因为我们并没有指定哪一个范围的username,所有它的默认值会先从Page范围找,假如找不到,再依次到Request、Session、Application范围,假如中途找到username,就直接回传,不再继续找下去,但是假如全部的范围都没有找到时,就回传null
属性范围 | 在EL中名称 |
Page | PageScope |
Request | RequestScope |
Session | SessionScope |
Application | ApplicationScope |
范例 | 说明 |
${pageScope.username} | 取出Page范围的username变量 |
$(requestScope.username) | 取出Request范围的username变量 |
${sessionScope.username} | 取出Session范围的username变量 |
${applicationScope.username} | 取出Application范围的username变量 |
pageScope、requestScope、sessionScope、applicationScope都是EL的隐含对象,
3.自动类型转换
${param.count + 20}
param.count为字符串
假若窗体传来count的值为10时,那么上面的结果为30
4.保留字
And | eq | gt | true |
Or | ne | le | false |
No | lt | ge | null |
instanceof | empty | div | mod |