EL——表达式概述、运算、内置对象

EL概述

EL(Express Lanuage)表达式可以嵌入在jsp页面内部,减少jsp脚本的编写,EL 出现的目的是要替代jsp页面中输 出脚本的编写。

EL(Express Lanuage)表达式可以嵌入在jsp页面内部,减少jsp脚本的编写,EL 出现的目的是要替代jsp页面中输 出脚本的编写。

1.EL表达式的格式:${EL表达式内容}
   相当于${}代替<%%>
2.EL表达式的作用:     
    1.内置对象的使用
    2.对域对象中查找指定对象
    3.执行运算符
3.从域对象中查找指定的数据
    域对象            EL对象
    pageContext      pageScope
    request          requestScope
    session          sessionScope
    application      applicationScope
4.使用格式
    ${xxxScope.keyName}
    ${xxxScope['keyName']}
    简化:${keyName}
    如果keyName都相同,依次从pageScope,requestScope,sessionScope,applicationScope中获取属性,在某个域中获取后,将不再向后寻找
5.EL获得数据
    1.普通数据
    ${域名城.键名}
    <!--获取域对象中保存的数据-->
    <%=application.getAttribute("DATA_IN_APP")%>
    <%=session.getAttribute("DATA_IN_SESSION")%>
    <%=request.getAttribute("DATA_IN_REQUEST")%>

    <hr>

<%-- el的取值方式 --%>
${applicationScope.DATA_IN_APP}
${sessionScope.DATA_IN_SESSION}
${requestScope.DATA_IN_REQUEST}



${applicationScope["DATA_IN_APP"]}
${sessionScope["DATA_IN_SESSION"]}
${requestScope["DATA_IN_REQUEST"]}

<%-- el取值的简化方式(key的值相同时,从域对象范围最小的先获取) --%>



${DATA_IN_APP}
${DATA_IN_SESSION}
${DATA_IN_REQUEST}

2.JavaBean对象 ${域名称.键名.属性名}
<%-- el取值的简化方式(key的值相同时,从域对象范围最小的先获取) --%>
<%-- 获取JavaBean对象 --%> ${USER_IN_REQUEST}
<%-- 获取JavaBean对象的name属性 --%> ${USER_IN_REQUEST.name}
${USER_IN_REQUEST.pwd}
3.EL获取List集合对象 ${域名称.键名[索引]}
<%-- el取值的简化方式(key的值相同时,从域对象范围最小的先获取) --%>
<%-- 获取集合对象 --%> ${list}
<%-- 获取集合对象的元素 --%> ${list[0]} ${list[1]} ${list[2]}
4.EL获取Map集合对象
<%-- el取值的简化方式(key的值相同时,从域对象范围最小的先获取) --%>
<%-- 获取集合对象 --%> ${mapBean}
<%-- 获取map集合对象的bean元素 --%>
${mapBean.u1}<br>
${mapBean.u2}<br>
${mapBean.u3}<br>
${mapBean.u4}<br>
<%--获取集合中mapbean对象的属性--%>
${mapBean.u1.name}-----${mapBean.u1.pwd}<br>
${mapBean['u1'].name}-----${mapBean['u1'].pwd}<br>
${mapBean.u3.name}-----${mapBean.u3.pwd}<br>
${mapBean.u4.name}-----${mapBean.u4.pwd}<br>
#EL表达式的运算 1.关系运算符 ==或者eq 等于 ${5==5}或者${5eq5} !=或ne 不等于 ${5!=6}或者${5ne6} <或lt 小于 ${5<6}或者${5lt5} >或gt 大于 ${5>4}或者${5gt4} <=或le 小于等于 ${5<=5}或者${5le5} >=或ge 大于等于 ${5>=5}或者${5ge5} 2.逻辑运算符 &&或and 与运算 ${ 12 == 12 && 12 < 11 } 或 ${ 12 == 12 and 12 < 11 } ||或or 或运算 ${ 12 == 12 ll 12 < 11 } 或 ${ 12 == 12 or 12 < 11 } !或not 非运算 ${ !true } 或 ${not true }
3.算术运算符
    +              加               ${ 12 + 18 }
    -              减               ${ 18 - 8 }
    *              乘               ${ 12 * 12 }
    /或者div       除               ${ 144 / 12 } 或 ${ 144 div 12 }       
    %或mod         取模             ${ 144 % 10 } 或 ${ 144 mod 10 }

4.empty运算符
   empty运算是判断一个对象或者集合是否为空。返回boolean值。
    *判断字符串,集合,数组对象是否为null或者长度为0
    *${empty 键名}:判断指定键名的值是否为空
    *${not empty 键名}:判断指定键名对应的值是否不为空或者不为0

EL内置对象

    *pageContext
    *requestScope
    *sessionScope
    *applicationScope
    1.在Servlet中取得web应用的名称:request.getContextPath()
    2.在jsp页面上获得web应用虚拟目录()的名称:${pageContext.request.getContextPath}
原文地址:https://www.cnblogs.com/linjing111/p/12803445.html