EL(Expression Language)表达式语言,目的:为了使JSP写起来更加简单,EL提供了JSP中简化表达式的方法。
它是一种简单的语言,基于可命名空间(PageContext属性)、嵌套属性和对象集合、操作符(算属型、关系型和逻辑型)的访问符、映射到java类中的静态方法的可扩展函数以及一组隐式对象。
3.1${expression}
3.2[] 与.运算符,EL提供[] 和 . 两种运算符来存取数据。eg: ${user["name"] (动态存取值时用[] . 不能动态存取)
3.3 变量
el存取变量的方法, 为${username} 取出某一个范围中名称为username的变量。当我们没有指定哪一范围的username,它会依次从Page、Request、Session、Application范围内查找。
我们比较常用的是它的几个隐式对象
隐式对象 | 定义 |
pageContext | 用于访问jsp隐式对象,为页面的响应或请求对象赋值。 |
param | 请求参数名称映射到单个字符串参数值。eg:表达式${parma.name} 相当于request.getParameter(name) |
paramValues | 请求参数名称映射到一个数值数组。eg:${parmavalues.name}相当于request.getParameterValues(name) |
header | 表达式${header.name}相当于request.getHeader(name) |
headerValues | ${headerValues.name}相当于request.getHeaderValues(name) |
cookies | 将cookie名称映射到单个cookie对象 |
initParam | 初始化参数名称映射到单个值。ServletContext.getInitparameter(String name)获得。 |
注意:
1、当用表达式引用这些对象时,返回的是相应的对象,而不是相应的属性。eg:${pageContext} 返回PageContext对象。
2、<%@ page isELigonred="true" %>表示是否禁用EL语言,true表示禁止,false表示未禁止,jsp2.0默认未禁止。
1 ${param.username}----------------><%=request.getParameter("username") %>
代码片段
2 ${user.addr}--------------><%=user.getAddr()%>
代码片段
3 ${requestScope.userlist}----------><%=request.getAttribute("userlist")%>
4 ${userlist}执行顺序为:${pageScope.userlist} , ${applicationScope.userlist}, ${sessionScope.userlist}, ${requestScope.userlist}直到找到为止。
5 ${user.username}-------------------><%=user.getUsername()>
6 取得map中的值${map.k1 }
7 表达式对运算符的支持:1+1=${1+1},10/5=${10/5} 10 div 5 =${10 div 5}