EL表达式学习笔记

 转载请注明原文地址:http://www.cnblogs.com/ygj0930/p/6684424.html 

一:EL表达式的用途

1、获取数据:(某个web域 中的对象,访问javabean的属性、访问list集合、访问map集合、访问数组)
2、执行运算:基本的关系运算、逻辑运算和算术运算
3、获取web开发的内置对象
4、调用Java方法:允许用户开发自定义EL函数,在JSP页面中通过EL表达式调用Java类的方法。
 
二:JSP页面中开启EL表达式
<%@ page isELIgnored="false"%>:TRUE表示禁止.FALSE表示不禁。
 
三:EL表达式获取对象数据
EL表达式获取数据语法:"${标识符}"
EL表达式语句在执行时,会调用pageContext.findAttribute方法,用标识符为关键字,分别从page、request、session、application四个域中查找相应的对象,找到则返回相应对象,找不到则返回”” (注意,不是null,而是空字符串)。
1:获取变量值:${name}
2:获取对象属性:${bean.attribute}
3:获取list、数组等数据结构的元素的属性:${list[i].attribute}
4:迭代遍历数组:<c:forEach var="item" items="${list}"> ${item.attribute}  </c:forEach>
 5:获取map中值:${map.key}、 ${map[key]}
 
四:EL表达式隐含对象
EL表达式语言中定义了11个隐含对象,使用这些隐含对象可以很方便地获取web开发中的一些常见对象,并读取这些对象的数据。
  语法:${隐式对象名称.XX}:获得对象的某属性值。
序号 隐含对象名称 描 述
1 pageContext 对应于JSP页面中的pageContext对象(注意:取的是pageContext对象。)
2 pageScope 代表page域中用于保存属性的Map对象
3 requestScope 代表request域中用于保存属性的Map对象
4 sessionScope 代表session域中用于保存属性的Map对象
5 applicationScope 代表application域中用于保存属性的Map对象
6 param 表示一个保存了所有请求参数的Map对象
7 paramValues 表示一个保存了所有请求参数的Map对象,它对于某个请求参数,返回的是一个string[]
8 header 表示一个保存了所有http请求头字段的Map对象,注意:如果头里面有“-” ,例Accept-Encoding,则要header[“Accept-Encoding”]
9 headerValues 表示一个保存了所有http请求头字段的Map对象,它对于某个请求参数,返回的是一个string[]数组。注意:如果头里面有“-” ,例Accept-Encoding,则要headerValues[“Accept-Encoding”]
10 cookie 表示一个保存了所有cookie的Map对象
11 initParam 表示一个保存了所有web应用初始化参数的map对象
 
 
五:EL表达式的运算
1:四则运算
加法运算:${365+24}
减法运算:${365-24}
乘法运算:${365*24}
除法运算:${365/24}
 
2:关系运算
${num1 op num2}
 
3:空判断运算
empty(obj):检查obj是否为空
 
4:[]与.运算符:都可以用来获取对象的数据。
     当要存取的属性名称中包含一些特殊字符,如.或?等并非字母或数字的符号,就一定要使用 []。
     ${user.My-Name}应当改为${user["My-Name"] }
     如果要动态取值时,就可以用[]来做,而.无法做到动态取值。例如:
     ${sessionScope.user[data]}
 
 
 
 
原文地址:https://www.cnblogs.com/ygj0930/p/6684424.html