[原创]java WEB学习笔记37:EL表达式(简介,运算符,自动类型转换,保留字,隐含对象)

1.EL 简介

  1)EL 全名为 Expression  Language,它原本是 JSTL  1.0 为方便存取数据所自定义的语言

  2)语法:EL 语法很简单,它最大的特点就是使用上很方便:${sessionScope.user.sex}。所有 EL 都是以  ${  为起始、以}  为结尾的。

  3).与[ ] 运算符:EL 提供. 和[ ] 两种运算符来存取数据

  例子:${sessionScope.user.sex}  等于 ${sessionScope.user["sex"]}

 

2. . 和 [] 运算符 

当要存取的属性名称中包含一些特殊字符, 如 . 或 – 等并非字母或数字的符号, 就一定要使用[ ],例如:

${user.My-Name }
  上述是不正确的方式,应当改为:
${user["My-Name"] }

 1 <%    
 2         Customer cust = new Customer();
 3         cust.setName("jason");
 4         session.setAttribute("com.jason.customer", cust);
 5     %>
 6     <br>
 7     <!-- 普通方法  -->
 8      <%
 9          Customer cust1 = (Customer) session.getAttribute("com.jason.customer");
10          String name = cust1.getName();
11          out.print(name);
12      %>
13     <br>
14     <!-- el 方式 -->
15     <!-- 在域对象中的 属性名 含有特殊字符时候,使用 [] 运算符很方便 -->
16     name:${sessionScope.com.jason.customer.name }
17     <br>
18     name:${sessionScope["com.jason.customer"].name }

 

 

3.EL 中的隐含对象

EL 存取变量数据的方法很简单,例如: ${username}。 它的意思是取出某一范围中名称为 username的变量。因为我们并没有指定哪一个范围的 username,所以它的默认值会先从 Page 范围找,假如找不到,再依序到 Request、Session、Application 范围。假如途中找到 username,就直接回传,不再继续找下去,但是假如全部的范围都没有找到时,就回传 null.

 

${pageScope.username}     取出 Page 范围的 username 变量

 

${requestScope.username}     取出 Request 范围的 username 变量


${sessionScope.username}     取出 Session 范围的 username 变量


${applicationScope.username}  取出 Application 范围的 username 变量

 

pageScope、requestScope、sessionScope 和 applicationScope 都是 EL 的隐含对象,由它们的名称可以很容易猜出它们所代表的意思,例如:${sessionScope.username}是取出 Session范围的 username 变量 

 

4.EL 中的自动转变类型

${param.count + 20}
假若窗体传来 count 的值为 10 时, 那么上面的结果为 30

 

5.保留字

        

所谓保留字的意思是指变量在命名时,应该避开上述的名字,以免程序编译时发生错误

 

posted @ 2016-06-03 15:36  jason_zhangz  阅读(400)  评论(0编辑  收藏  举报