溫馨提示×

溫馨提示×

您好,登錄后才能下訂單哦!

密碼登錄×
登錄注冊×
其他方式登錄
點擊 登錄注冊 即表示同意《億速云用戶服務(wù)條款》

EL表達式怎么用

發(fā)布時間:2021-12-29 17:24:42 來源:億速云 閱讀:148 作者:小新 欄目:編程語言

這篇文章給大家分享的是有關(guān)EL表達式怎么用的內(nèi)容。小編覺得挺實用的,因此分享給大家做個參考,一起跟隨小編過來看看吧。

EL (Expression Language) 表達式語言
是JSP2.0的正式標(biāo)準規(guī)范之一

要想運行EL,必須先尋找一個可以支持JSP2.0 的 java web容器
先讓我們來測試一下你手中的java Web容器是否支持 JSP2.0

來把這個JSP放如你餓web 容器中

index.jsp
-----------
<%@ page="" language="java" contenttype="text/html; charset=GBK" pageencoding="GBK">


servlet 支持 : <%=application.getmajorversion()>.<%=application.getminorversion()>

-----------

來訪問一下這個頁面,如果支持的servlet版本 是在 2.4 或則 2.4以上,那么你的web容器應(yīng)該是能支持JSP2.0的。
<我的土方法,哈哈。有別的更好的方法識別>

例如:
${user.firstName}


EL保留字
And  Or  No  Instanceof
eq  ne  le  ge
lt  gt  empty  null
true  false  div  mod

EL保留標(biāo)識符
pageContext  pageScope  requestScope  sessionScope
applicationSocpe param   paramValues  header
headerValues  cookie   initParam


作用域(4個)
page  request  session  application

任何出現(xiàn)在EL表達式中,但不對應(yīng)于任何EL隱式對象的標(biāo)識符,都被自動假定為引用存儲在某個JSP作用域中的對象。
EL會依次 檢查 page ,request , session ,application 這四個作用域。
一旦找到對應(yīng)的值,馬上返回值,不再繼續(xù)尋找。
如果遍歷后沒有找到,返回null

EL存取器

點(.)運算符 通常用來訪問對象的屬性
example:
${user.sex}
${user.birthday.year}

方括號([])運算符 通常用于檢索叔祖或集合的元素
example:
${email[1]}  注意,索引從‘0’開始

如果檢索的對象是實現(xiàn)Map接口的集合,方括號運算符號使用慣量的鍵檢索存儲在衍射中的值
example:
${employee{"id"}}

-----------------------------------------------------------------------------------------

---------------------------------EL的11個隱式對象----------------------------------------
pageContext  

pageScope  requestScope  sessionScope  applicationScope

param   paramValues  

header   headerValues

cookie  

initParam
-----------------------------------------------------------------------------------------


訪問地址:http://www.wangyudong.com:8080/elapp/index.jsp?id=99#123456789

測試結(jié)果:
servlet 支持 : 2.4版本

${pageContext.servletContext.serverInfo} : Apache Tomcat/5.0.28
${pageContext.request.requestURL} :
http://www.wangyudong.com:8080/elapp/index.jsp
${pageContext.request.requestURI} : /elapp/index.jsp
${pageContext.request.contextPath} : /elapp
${pageContext.request.queryString} : id=99
${pageContext.request.method} : GET
${pageContext.request.protocol} : HTTP/1.1
${pageContext.request.localAddr} : 127.0.0.1
${pageContext.session.new} : false
${pageContext.request.requestedSessionId} : A9D19BB7273C2C6622E8C8F2174215D7
${pageContext.session.id} : A9D19BB7273C2C6622E8C8F2174215D7

------------------------------------------------------------------------------------------
EL的四個作用域:

頁面作用域  pageScope  
example:
${pageScope.userName}
${pageScope.password}


請求作用域  requestScope
example:
${requestScope.userName}
${requestScope.password}


會話作用域  sessionScope
example:
${sessionScope.userName}
${sessionScope.password}


應(yīng)用作用域  applicationScope
${applicationScope.userName}
${applicationScope.password}


-----------------------------------------------------------

param對象 ,請求參數(shù)對象

存放 客戶發(fā)送的請求參數(shù)

userName : ${param.userName }
password : ${param.password }

----------------------------------------------------------

paramValues對象 ,Map映射對象,存放的是所有請求參數(shù) 的 '名' 和 '值' 的鍵值對。

可以說為每一個不同名的參數(shù)建立一個 Map對象。

userName : ${paramValues.userName[0]}
userName : ${paramValues.userName[1]}


----------------------------------------------------------

header 對象 :存放頭部信息的對象

example:
${header["User-Agent"] } //獲得用戶的瀏覽器信息

----------------------------------------------------------

cookie對象 : Cookie

附帶和Cookie相關(guān)的 名值對 的 Map映射

example:
${cookie.JSESSIONID.name} : ${cookie.JSESSIONID.value }


----------------------------------------------------------

iniParam對象 : 初始化參數(shù)

web.xml中配置:

wyd
wang yu dong

index.jsp中獲得參數(shù)
initParam value of wyd : ${initParam["wyd"] }

----------------------------------------------------------
EL顯示文字:

${"ssss"}
${'kkkk'}


EL顯示數(shù)字:

${123}
${22.9865}

EL顯示布耳值
${true}
${false}

----------------------------------------------------------

EL算術(shù)運算

-----------------------------------------------------------------------------------
算術(shù)運算符  說明  范例    結(jié)果
-----------------------------------------------------------------------------------
+   加法  ${123+456}   579  
-   減法  ${123-456}   -333
*   乘法  ${123*456}   56088
/ or div  除法  ${123/456}或${123 div 456} 0.2697368
% or mod  求余  ${123%456}或%{123 mod 456} 123  
-----------------------------------------------------------------------------------

關(guān)系運算
-----------------------------------------------------------------------------------
關(guān)系運算符  說明  范例    結(jié)果
-----------------------------------------------------------------------------------
== 或 eq  等于  ${123==456} 或 ${123 eq 456} false
-----------------------------------------------------------------------------------
!= 或 ne  不等于  ${123!=456} 或 ${123 ne 456} false
-----------------------------------------------------------------------------------
<  或 lt  小于  ${123<456}  或 ${123 lt 456} true
-----------------------------------------------------------------------------------
>  或 gt  大于  ${123>456}  或 ${123 gt 456} false
-----------------------------------------------------------------------------------
<= 或 le  小于等于 ${123<=456} 或 ${123 le 456} true
-----------------------------------------------------------------------------------
>= 或 ge  大于等于 ${123>=456} 或 ${123 ge 456} false
-----------------------------------------------------------------------------------


邏輯運算
-----------------------------------------------------------------------------------
邏輯運算符  說明  范例(A=true B=false)  結(jié)果
-----------------------------------------------------------------------------------
&& 或 and  邏輯于  ${A&&B} 或 ${A and B}  false
-----------------------------------------------------------------------------------
|| 或 or  邏輯或  ${A||B} 或 ${A or B}  true
-----------------------------------------------------------------------------------
!  或 not  邏輯非  ${!A} 或 ${not A}  false
-----------------------------------------------------------------------------------

驗證運算
-----------------------------------------------------------------------------------
驗證運算符  說明  范例    結(jié)果
-----------------------------------------------------------------------------------
    ${empty null}   true
    -------------------------------------------
empty   是否為空 ${empty ""}   true
    -------------------------------------------
    ${empty "123"}   false
-----------------------------------------------------------------------------------

EL函數(shù)

1,寫EL標(biāo)簽?zāi)_本類。

下面是類的內(nèi)容,
注意:
1,類一定是public的
2,類中的方法一定是public static的
_________________

package wyd.jsp.el.tag;

public class MathFunction {
/**
 * PI是 圓周率
 */
private static final double PI=3.1415926;

/**
 *
 * @param radius 圓半徑
 * @return 圓周長
 */
public static double girthOfCircle(double radius){
 double grith=0;
 
 grith=PI * 2 * radius;
 
 return grith;
 
}

/**
 *
 * @param radius 圓周長
 * @return 圓面積
 */
public static double areaOfCircle(double radius){
 double area=0;
 area= PI * radius * radius;
 
 return area;
}

}
_________________

2,寫標(biāo)簽定義文件  *.tld文件

下面是"wyd_math.tld" 文件的內(nèi)容

并且我選擇的保存文件路徑是"WEB-INF/tlds/wyd_math.tld"

—————————————————

<taglib xmlns="http://java.sun.com/xml/ns/j2ee"
xmlns:xsi="
http://www.w3.org/2001/XMLSchema-instance"
xsi:schemaLocation="
http://java.sun.com/xml/ns/j2ee web-jsptaglibrary_2_0.xsd"
version="2.0">
1.0
/http://www.wangyudong.com

 
 girth
 wyd.jsp.el.tag.MathFunction
 double girthOfCircle(double)

 area
 wyd.jsp.el.tag.MathFunction
 double areaOfCircle(double)

—————————————————

3,現(xiàn)在配置到web.xml中

我的配置好的web.xml文件
—————————————————

   index.jsp

 http://www.wangyudong.com/tld/math
 /WEB-INF/tlds/wyd_math.tld

—————————————————

解釋:
taglib-uri : 隨便給一串字符串來標(biāo)記它,到時候jsp文件 應(yīng)用到該標(biāo)記的時候可以找到它
taglib-location : 是標(biāo)記存在的描述文件 *.tld 文件存在的位置 。"/" 開頭 表明從一個應(yīng)用 'application'的根目錄下尋找

4,在JSP中應(yīng)用EL 自定義標(biāo)簽;

我的jsp文件: "el.jsp"
————————————————————————
<%@ page="" language="java" contenttype="text/html; charset=gbk" pageencoding="GBK">
<
%@page isELIgnored="false"%>
<%@ taglib prefix="wyd" uri="
http://www.wangyudong.com/tld/math"%>


R=100的圓的周長 : ${ wyd:girth(100) }

R=100的圓的面積 : ${ wyd:area(100)}  



5,訪問的結(jié)果出來了

result:
----------


R=100的圓的周長 : 628.31852
R=100的圓的面積 : 31415.926000000003

感謝各位的閱讀!關(guān)于“EL表達式怎么用”這篇文章就分享到這里了,希望以上內(nèi)容可以對大家有一定的幫助,讓大家可以學(xué)到更多知識,如果覺得文章不錯,可以把它分享出去讓更多的人看到吧!

向AI問一下細節(jié)

免責(zé)聲明:本站發(fā)布的內(nèi)容(圖片、視頻和文字)以原創(chuàng)、轉(zhuǎn)載和分享為主,文章觀點不代表本網(wǎng)站立場,如果涉及侵權(quán)請聯(lián)系站長郵箱:is@yisu.com進行舉報,并提供相關(guān)證據(jù),一經(jīng)查實,將立刻刪除涉嫌侵權(quán)內(nèi)容。

AI