JavaWeb_EL语法

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

 

posted @ 2019-07-12 11:21  鸿森  阅读(135)  评论(0编辑  收藏  举报