EL表达式是一种简单的数据访问语言,能够快速访问servlet
域对象中存储的数据。
EL基本语法
语法格式如下
代码语言:javascript复制${ expression }
EL中的变量
EL中的变量不需要预先定义就可以直接使用
代码语言:javascript复制${ var }
EL的运算符
算数、比较、逻辑、条件运算符、与其他语言类似
条件运算符
代码语言:javascript复制${a?b:c}
empty运算符
代码语言:javascript复制${ empty var }
当var没有定义、var为null或者为集合类型对象却不包含任何元素,返回true
EL隐式对象
对象名称 | 描述 |
---|---|
pageContext | JSP页面的pageContext对象 |
pageScope | page域中保存属性的map对象 |
requestScope | request域中保存属性的map对象 |
sessionScope | session域中保存属性的map对象 |
applicationScope | application域中保存属性的map对象 |
param | 包含所有请求参数的map对象 |
paramValue | 对于某个请求参数返回的是String类型数组 |
header | 保存http头字段的map对象 |
headerValue | 保存http头字段的map对象,返回String类型数组 |
cookie | 保存cookie所有值的map对象 |
initParam | 保存web应用初始化参数的map对象 |
实例
代码语言:javascript复制<%--pageContext--%>
pageContext.request.requestURL: ${pageContext.request.requestURL} <br>
pageContext.servletConfig.serverName: ${pageContext.servletConfig.servletName} <br>
<%--web域相关对象--%>
<% pageContext.setAttribute("userName", "Andromeda"); %>
<% request.setAttribute("reqName", "El Expression"); %>
<% session.setAttribute("sessionName", "session"); %>
<% application.setAttribute("appName", "test of el expression"); %>
page scope name: ${pageScope.userName} <br>
request scope name: ${requestScope.reqName} <br>
session scope name: ${sessionScope.sessionName} <br>
application scope name: ${applicationScope.appName} <br>
<%--用户的请求参数--%>
<%--单个值--%>
<%--测试参数?num1=2&num2=4&num=1&num=3--%>
num1: ${param.num1}<br>
num2: ${param.num2}<br>
sum: ${param.num1 param.num2}<br>
<%--多个值--%>
num: ${paramValues.num[0]} and ${paramValues.num[1]}<br>
sum: ${paramValues.num[0] paramValues.num[1]}<br>
<%--cookie对象--%>
<%-- 响应中添加cookie
第二次访问能看到cookie
--%>
<%
Cookie cookie = new Cookie("name", "Andromeda");
response.addCookie(cookie);
%>
${cookie.name} = ${cookie.name.value} <br>
测试的参数为?num1=2&num2=4&num=1&num=3
,结果如下