EL表达式的隐式对象表达式的隐式对象_动力节点动力节点Java学院整理学院整理
主要介绍了EL表达式的隐式对象,小编觉得挺不错的,现在分享给大家,也给大家做个参考。一起跟随小编过
来看看吧
在使用EL时,其实EL是先看标识符是否是其隐式对象之一,如果不是,才从四个域(page、request、session、application)中
顺序搜索(使用pageContext.findAttribute方法)。
EL总共有如下隐式对象:
而这里,EL和JSP一样拥有pageContext对象,通过在EL中使用pageContext对象,能获取JSP中其它几个隐式对象,然后再
获得这些对象中的属性。例如获取当前web工程的名称的经典EL表达式:${ pageContext.request.contextPath },就是由
pageContext先获取request对象(因为在JSP的API中,我们可以看到pageContext有getRequest方法),获取到request对象
后,因为request中含有getContextPath方法,因此我们还可以获得request对象中contextPath属性的值。
pageScope、requestScope、sessionScope、applicationScope这四个EL隐式对象分别代表了各自域中的Map对象(每个域以
关键字来保存数据或对象,肯定是使用Map集合),这Map对象保存了存在这些域中的键值对。通过EL表达式和这些隐式对
象,我们可以直接从指定的域中获取存储的数据。
例1:
<%
User u = new User();
u.setUsername("fjdingsd");
session.setAttribute("user", u);
%>
欢迎您:${sessionScope.user.username}
在浏览器中观察:
对于用户登录这样的案例来说,我们检查用户是否登录肯定只需要从session域中查询,这样使用EL表达式的sessionScope隐
式对象就足够了。
param隐式对象:表示所有请求参数的Map集合对象。例如表单提交,那么在请求参数中的数据就以键值对存储在param对象
所代表的Map集合中,下面的例子我以get方式来替代post方式来模拟表单请求参数:
例2: