EL表达式:expression language 表达式的语言
作用:替换何建华jsp也米那种java代码的编写。它不是一种开发语言,而是JSP中获取数据的一种规范。
语法:${表达式}
运算
算数运算符:+-*/(dib)%(mod)
比较运算符:><>=<===!=
逻辑运算符:&&(and)||(or)!(not)
${ 100 div 4}<br>
${ 100 mod 4}<br>
${ 3 > 4}<br>
${3 > 4 && 3 < 4}<br>
${3 > 4 and 3 < 4}<br>
空运算符:empty not empty
功能:用于判断字符串、集合、数组的对象是否为null或者长度是否为0
${empty list}<br>
${not empty list}<br>
获取数据
EL表达式若获得的值为null,则不会显示,实现的效果类似于
${msg}
<%=session.getAttribute("msg") == null ?"":session.getAttribute("msg") %>
EL表达式只能从域对象中获取值。
1. 获取域对象中存储的数据
格式:${域对象.键名}
从指定域中获取指定键的值
pageScope --> pageContext
requestScope --> request
sessionScope --> session
applicationScope --> application(ServletContext)
如果省略对象,${键名}:
表示依次从最小的域中查找是否有该键对应的值,直到找到为止。
${ s}
${requestScope.s}
${applicationScope.s}
2. 获取对象、数组、List集合、Map集合的值:
获取对象里属性值的三种方式:
${s.getname()}
${s.name}
${s['name']}
获取数组、List集合里的值:${键名[索引]}
${list[0]}
${list[10]}
获取Map集合里的值:
${map.gender}
${map[gender]}
隐式对象
不需要创建,可以直接使用的对象,类似于jsp中的内置对象。
EL表达式中有11个隐式对象
EL隐式对象引用名称 | 类型 | JSP内置对象名称 | 说明 |
pageContext | javax.servlet.jsp.PageContext | pageContext | 一样的 |
pageScope | java.util.Map<String,Object> | 没有对应的 | pageContext范围中存放的数据,页面范围 |
requestScope | java.util.Map<String,Object> | 没有对应的 | 请求范围数据 |
sessionScope | java.util.Map<String,Object> | 没有对应的 | 会话范围数据 |
applicationScope | java.util.Map<String,Object> | 没有对应的 | 应用范围数据 |
param | java.util.Map<String,String> | 没有对应的 | 一个请求参数 |
paramValues | java.util.Map<String,String[]> | 没有对应的 | 重名请求参数 |
header | java.util.Map<String,String> | 没有对应的 | 一个请求消息头 |
headerValues | java.util.Map<String,String[]> | 没有对应的 | 重名请求消息头 |
initParam | java.util.Map<String,String> | 没有对应的 | web.xml中全局参数 |
cookie | java.util.Map<String,Cookie> | 没有对应的 | key:cookie对象的name值 |