![](https://images2017.cnblogs.com/blog/1252584/201712/1252584-20171216205759514-1480111473.png)
El的数据访问操作:
1:获取变量名(四大作用域中的变量?六大作用域?)
只能从这六个区域中拿数据!!!
2:获取对象的属性值
3:获取集合元素
4:执行表达式
1:获取变量名(四大作用域中的变量)
![](https://images2017.cnblogs.com/blog/1252584/201712/1252584-20171216205800233-1252843626.png)
![](https://images2018.cnblogs.com/blog/1252584/201803/1252584-20180307231115756-1595670464.jpg)
![](https://images2017.cnblogs.com/blog/1252584/201712/1252584-20171216205804264-1084800776.png)
如果找不到,则返回null,为了提高速度,一把写成${requestScope.username}
2:获取对象的属性值
![](https://images2017.cnblogs.com/blog/1252584/201712/1252584-20171216205804499-60190269.png)
![](https://images2017.cnblogs.com/blog/1252584/201712/1252584-20171216205804671-1551212135.png)
![](https://images2017.cnblogs.com/blog/1252584/201712/1252584-20171216205804811-1629787826.png)
实际上是调用了user对象的getName()方法
3:获取集合元素
![](https://images2017.cnblogs.com/blog/1252584/201712/1252584-20171216205806358-127724226.png)
这里的key如果是整型的话,必须长整型,并且只能通过${names["two"]}方式获取
4:执行表达式
a)关系操作符
![](https://images2017.cnblogs.com/blog/1252584/201712/1252584-20171216205808264-1008638362.png)
b)逻辑操作符
![](https://images2017.cnblogs.com/blog/1252584/201712/1252584-20171216205810311-176689486.png)
c)empty空操作符
![](https://images2017.cnblogs.com/blog/1252584/201712/1252584-20171216205811655-1764053433.png)
4:隐式对象
![](https://images2018.cnblogs.com/blog/1252584/201803/1252584-20180307231151638-301495757.jpg)
EL隐式对象
![](https://images2017.cnblogs.com/blog/1252584/201712/1252584-20171216205815139-811163031.png)
![](https://images2017.cnblogs.com/blog/1252584/201712/1252584-20171216205816983-577729671.png)
![](https://images2017.cnblogs.com/blog/1252584/201712/1252584-20171216205819655-437430871.png)
![](https://images2017.cnblogs.com/blog/1252584/201712/1252584-20171216205820030-1919755693.png)