什么是EL表达式?
EL,Expression Language,表达式语言,是一种在JSP页面中获取数据的简单方式,通过 ${变量名}的方式 可以获取到该值,需要注意的是EL只能从 pageContext、Request、Session、application 四大域属性空间中获取 数据。
使用EL表达式获取数据
访问Bean的属性
EL可以通过 ${key.属性}的方式 获取到指定对象的属性值。其底层调用的是该对象的相应属性的get方法。
获取数组中的元素
EL可以通过 ${key[索引]}的方式获取到指定索引的元素。不过,需要注意的是,若数组中不存在该指定索引的元素,系统并不会 抛出 数组越界异常。
运算符
EL表达式可以进行各种运算,其中常用的运算符有:
EL表达式内置对象
同JSP类似,在EL表达式中也有一些内置对象,共11个:
pageContext
EL表达式中的pageContext与JSP内置对象中的pageContext是同一个对象。通过该对象,可以获取到request、response、session、ServletContext、ServletConfig等对象。注意这些对象在EL表达式中不是内置对象,只能通过EL中的pageContext获取。
在EL中直接:
${pageContext.request}
即可获取request对象。其底层实际调用的是 pageContext.getRequest()方法。同理,也可以通过类似方式直接获取到其它对象。在这些获取的对象中,有一个是实际工程中最常用的:
${pageContext.request.contextPath}
用于获取当前项目的发布到服务器的名称,一般用在路径中。
param
在EL中通过 ${Param.参数名}可获取到请求中指定参数名的值。
自定义函数
EL总结
- 不能出现在Java代码块,表达式块等JSP的动态部分。
- 只能从pageContext、request、session、application四大域属性空间中获取数据。
- 不会抛出空指针异常。若访问一个null对象的属性,则什么也不显示。
- 不会抛出数组访问越界异常,若访问一个数组中的不存在的元素,则什么也不显示。