EL 隐含对象共有 11 个,本节只介绍几个常用的 EL 隐含对象,即 pageScope、requestScope、sessionScope、applicationScope、param 以及 paramValues。
1)与作用范围相关的隐含对象
与作用范围相关的 EL 隐含对象有 pageScope、requestScope、sessionScope 和 applicationScope,分别可以获取 JSP 隐含对象 pageContext、request、session 和 application 中的数据。
如果在 EL 中没有使用隐含对象指定作用范围,则会依次从 page、request、session、application 范围查找,若找到就直接返回,不再继续找下去;如果所有范围都没有找到,就返回空字符串。获取数据的格式如下:
${EL隐含对象.关键字对象.属性}
或
${EL隐含对象.关键字对象}
例如:
<jsp:useBean id=“user” class=“bean.UserBean” scope=“page”/>
<jsp:setProperty name=“user” property=“name” value=“EL隐含对象”/>
name:${pageScope.user.name} 再
如,在 Controller 或 Servlet 中有这样一段话:
ArrayList users = new ArrayList();
UserBean ub1 = new UserBean(“zhang”,20);
UserBean ub2 = newUserBean(“zhao”,50);
users.add(ub1);
users.add(ub2);
request.setAttribute(“array”,users);
其中,UserBean 有两个属性 name 和 age,那么在对应视图 JSP 中 request 有效的范围内可以使用 EL 取出 UserBean 的属性,代码如下:
${array[0].name} ${array[0].age}
${array[1].name} ${array[1].age}
2)与请求参数相关的隐含对象
与请求参数相关的 EL 隐含对象有 param 和 paramValues。获取数据的格式如下:
${EL隐含对象.参数名}
例如,input.jsp 的代码如下:
<form method="post" action="param.jsp">
<p>
姓名:<input type="text" name="username" size=" 15" />
</p>
<p>
兴趣:
<input type="checkbox" name="habit" value="看书" />看书
<input type