EL表达式(Expression Language 表达式语⾔)
EL 表达式概述
- 作⽤:要替代和简化JSP⻚⾯中脚本的编写。
- 语法:${表达式}
- 注意:jsp默认⽀持el表达式的。如果要忽略el表达式
- 设置jsp中page指令中:isELIgnored=“true” 忽略当前jsp⻚⾯中所有的el表达式
- ${表达式} :忽略当前这个el表达式
EL 表达式简单运算
-
算数运算符: + 、- 、* 、/(div) 、%(mod)
-
⽐较运算符: > 、<、>、=、<=、==、!=
-
逻辑运算符: &&(and)、||(or) 、!(not)
-
空运算符: empty 判断对象是否为null或者⻓度为0
<%-- <%=1+2%> --%>
普通表达式:
${1+2}
元素为null 或者 内容是空("", 空集合/数组):
${empty ""}
元素不为null,或者长度大于0
${not empty param.age} <br>
EL 表达式获取值
- ${域名称.键名}:从指定域中获取指定键的值
pageScope → pageContext
requestScope → request
sessionScope → session
applicationScope → application(ServletContext)
<%-- request.getAttribute("name") --%>
使用域对象:
${requestScope.name}
${requestScope['name']}
- ${键名}:表示依次从最⼩的域中查找是否有该键对应的值,直到找到为⽌。
等同于findAttribute(String name)
<%-- request.getParameter("username") --%>
获得参数: ${param.username} <br>
<%-- request.getHeader("user-agent") --%>
获得请求头: ${header['user-agent']} <br>
<%-- request.getServletContext().getInitParameter("driver") --%>
获得初始化参数: ${initParam.driver}<br>
- 获取对象、List集合、Map集合的值
- 对象:${域名称.键名.属性名} 本质上会去调⽤对象的getter⽅法
- List集合:${域名称.键名[索引]}
- Map集合:
- ${域名称.键名.key名称}
- ${域名称.键名[“key名称”]}
<%-- request.getCookies() cookie.getName() cookie.getValue() --%>
获得cookie: ${cookie.username.value}<br>
<%-- session.getAttribute("user").getName() .getAge() --%>
session域中存的是user对象: ${sessionScope.user.age}
${strList[3]}<br>
${userList[2].username}<br>
${strMap.user1}