EL表达式概述
EL 全名为Expression Language,用来替代<%= %>脚本表达式。
基本结构为${表达式}。
获取数据
- 获取常量
<h1>获取常量</h1> ${123} ${123.32} ${"abc"} ${true} |
- 获取变量
el会自动从四大作用域中搜寻域属性来使用
如果找不到什么都不输出
<h1>获取变量</h1> <% pageContext.setAttribute("name","zs"); request.setAttribute("name","ls"); %> ${name} |
- 获取数组中的数据
<h1>获取数组中的数据</h1> <% String [] addrs = new String[]{"bj","sh","gz"}; pageContext.setAttribute("addrs",addrs); %> ${addrs[1]} |
- 获取集合中的数据
<h1>获取集合中的数据</h1> <% List<String> list = new ArrayList<String>(); list.add("刘备"); list.add("关羽"); list.add("张飞"); pageContext.setAttribute("list",list); %> ${list[0]} |
- 获取map中的数据
<h1>获取Map中的数据</h1> <% Map<String,Object> map = new HashMap<>(); map.put("name","诸葛亮"); map.put("age","25"); map.put("wife","黄月英"); map.put("job",new String[]{"军师","法师","中单","dps"}); pageContext.setAttribute("map",map); %> ${map["name"]} ${map["age"]} ${map["wife"]} ${map["job"][0]} |
- 获取javabean的属性
<h1>获取javabean的属性</h1> <% User user = new User(1,"zs",18,"bj"); pageContext.setAttribute("user",user); %> ${user.id} ${user.name} ${user.age} ${user.addr} |
执行简单的运算
- 算数运算
<h1>算数运算</h1> ${2+3} ${2+"3"} |
- 关系运算
<h1>关系运算</h1> ${3>2} ${3 gt 2} ${3 < 1} ${3 lt 1} |
- 逻辑运算
<h1>逻辑运算</h1> ${3>2 && 3<1} ${3>2 || 3<1} ${!(3>2 || 3<1)} |
- Empty运算
判断对象是否为null
判断字符串是否为空串
判断数组、集合、map是否没有任何元素
<h1>empty运算</h1> <% pageContext.setAttribute("user",null); pageContext.setAttribute("addr",""); pageContext.setAttribute("list",newArrayList()); %> ${emptyuser} ${emptyaddr} ${emptylist} |
- 三元表达式
<h1>三元运算符</h1> <% pageContext.setAttribute("age",20); %> ${age>18?"yes~":"no~"} |
获取Web开发常用对象
在el表达式中,共有11个内置对象,可以直接在el中使用
- pageContext对象
pageContext |
通过此内置对象,可以在el中获取其他八大隐式对象
<h1>pageContext</h1> ${pageContext.request.contextPath} ${pageContext.session.id} |
- 代表四大作用域的对象
pageScope | pageContext域 |
requestScope | request域 |
sessionScope | session域 |
applicationScope | ServletContext域 |
<h1>代表四大作用域的对象</h1> <% pageContext.setAttribute("name","zl"); request.setAttribute("name","zs"); session.setAttribute("name","ls"); application.setAttribute("name","ww"); %> ${requestScope.name} ${sessionScope.name} ${applicationScope.name} ${pageScope.name} |
param | Map<String,String>从请求参数中获取指定名称请求参数的值 |
paramValues | Map<String,String[]>从请求参数中获取指定名称请求参数的值的Map |
- 代表请求参数组成的map对象
<h1>代表请求参数值的对象</h1> ${param.username} ${param.age} ${paramValues.like[0]} ${paramValues.like[1]} ${paramValues.like[2]} |
- 代表请求头组成的map对象
header | Map<String,String>从请求头中获取指定名称请求头的值 |
headerValues | Map<String,String[]>从请求头中获取指定名称请求头的值的Map |
<h1>代表请求头的对象</h1> ${header.Cookie} ${header["Accept-Encoding"]} |
- 代表请求中Cookie组成的Map对象
cookie | 请求中所有cookie对象组成的Map<String,Cookie> |
<h1>代表Cookie对象</h1> ${cookie.JSESSIONID.value} |
- 代表Web应用初始化参数组成的map对象
initParam | 所有应用初始化参数组成的Map<String,String> |
<h1>代表应用初始化参数的对象</h1> ${initParam.ck1} ${initParam.ck2} |