[原创]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"] }

 <%
Customer cust = new Customer();
cust.setName("jason");
session.setAttribute("com.jason.customer", cust);
%>
<br>
<!-- 普通方法 -->
<%
Customer cust1 = (Customer) session.getAttribute("com.jason.customer");
String name = cust1.getName();
out.print(name);
%>
<br>
<!-- el 方式 -->
<!-- 在域对象中的 属性名 含有特殊字符时候,使用 [] 运算符很方便 -->
name:${sessionScope.com.jason.customer.name }
<br>
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 变量 

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

4.EL 中的自动转变类型

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

5.保留字

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

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

上一篇:JSP基础--EL表达式


下一篇:第75节:Java的中的JSP,EL和JSTL