JavaWeb

mac2022-06-30  89

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中名称PagePageScopeRequestRequestScopeSessionSessionScopeApplicationApplicationScope

 

范例说明${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.保留字

Andeqgt trueOrnelefalseNoltgenullinstanceofemptydivmod

 

转载于:https://www.cnblogs.com/yangHS/p/11175020.html

相关资源:学会EL表达式各种语法
最新回复(0)