EL表达式

2023-10-21 11:27:03 浏览数 (2)

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,结果如下

0 人点赞