EL表达式内置对象

EL表达式内置对象

同JSP类似,在EL表达式中也有一些内置对象,共11个:

  • pageContext
  • pageScope
  • requestScope
  • sessionScope
  • applicationScope
  • cookie
  • param
  • paramValues
  • header
  • headerValues
  • initParam

上面除了pageContext是javax.servlet.jsp.PageContext类型,其他的都是java.util.Map类型。四个域属性相关的对象之前用过了,下面主要介绍一些其他常用的。

pageContext

EL表达式中的pageContext与JSP内置对象中的 pageContext 是同一个对象。通过该对象,可以获取
到 request、response、session、servletContext、servletConfig 等对象。注意,这些对象在 EL中不是内置对象,只能通过EL中的pageContext 获取。
在 EL 中直接

`${pageContext.request}`

即可获取 request 对象。其底层实际调用的是
pageContext.getRequest()方法。同理,也可以通过类似方式获取到其它对象。
在这些获取的对象中,有一个是实际工程中最常用的:

${pageContext.request.contextPath}  

用于获取当前项目的发布到服务器的名称。一般会用在路径中,如果你熟悉web中的路径关系的话,就不建议使用这个了。

<form action="${pageContext.request.contextPath }/login.do"></form>

param
在 EL 中通过${param.参数名}可获取到请求中指定参数名的值。例如,提交的请求为:

localhost:8080/07-04-jsp/index.jsp?name=monkey1024

在 JSP 页面中通过如下方式,可获取到 name 参数的值:

${param.name}

paramValues
若提交的请求中同一参数具有多个值,则可通过 ${paramValues.参数名[索引]} 获取到指定索引号的该参数值。例如,提交的请求为:

localhost:8080/07-04-jsp/index.jsp?hobby=basketball&hobby=football

在JSP中获取方式如下:

${paramValues.hobby[0]}
${paramValues.hobby[1]}

initParam
在 EL 中通过使用 ${initParam.初始化参数名} 可以获取到初始化参数的值。 例如在 web.xml 中定义了初始化参数如下:

 <context-param>
      <param-name>admin</param-name>
      <param-value>1024</param-value>
  </context-param>

在JSP中的获取方式如下:

${initParam.admin}

其他对象在开发中基本不常使用,这里就不介绍了