EL表達式總結


在MVC體系結構中,JSP頁面只是用來顯示數據,但JSP腳本中的表達式功能不夠強大,它不能直接對隱式對象中某對象的屬性進行顯示,需要配合Scriptlet才能顯示數據,很是麻煩,如果在JSP頁面中使用EL表達式將大大簡化JSP頁面中的Java代碼,在配合JSP標准動作,JSTL,可達到真正的JSP無腳本。

EL(Expression Language)表達式語言,語法:${表達式},例如:${"Beijing 2008"}則在JSP頁面輸出Beijing 2008,相當於JSP腳本中的<%="Beijing 2008"%>,在EL表達式中的“'”和“"”功能是一樣的,表示一個字符串;

在JSP頁面中我們可以禁用EL表達式,需要配置page指令的isELIgnored屬性,屬性值若為true則支持EL表達式,若為false則禁用表達式,默認情況下是支持EL表達式的。

在EL表達式中我們可以使用運算符以達到我們想要的結果,運算符按作用分為以下幾種:

1.算術運算符

+ 注意:在EL表達式中的‘+’只有數學運算的功能,沒有連接符的功能,它會試着把運算符兩邊的操作數轉換為數值類型,進而進行數學加法運算,最后把結果輸出。若出現${'a'+'b'}則會出現異常。 例如:${6+6} 
- 例如:${4-3} 
* 例如:${4*3} 
/ 例如:${9/3}
2.關系運算符

> 例如:${8>9} 
>= 例如:${45>=9} 
< 例如:${4<9} 
<= 例如:${9<=8} 
== 例如:${4==4} 
!= 例如:${4!=3}
3.邏輯運算符

&& 例如:${false && false} 
|| 例如:${true || false} 
! 例如:${!true}相當於${false}
4.三元運算符

? : 例如:${3>2?'是':'不是'}
在EL表達式中還有一些特殊運算符:

empty 判斷EL表達式中的表達式是否為空,例如:${empty sessionScope.user} 
. 是我們最常用的,作用相當於執行Bean中的get方法。 例如:${sessionScope.user.userName}意思是:在會話中得到名稱為user的Bean對象,通過“.”運算符執行getUserName();方法,返回存放在Bean中的用戶名屬性的值。 
[] 作用和“.”運算符的一樣,只不過[]運算符可以執行一些不規則的標識符。 例如:${requestScope.user["score-math"]},這個表達式中有不規則的標識符,是不能使用“.”來訪問的。
在EL表達式中為我們提供了許多內置對象,使我們很方便的得到我們想要的數據:

1.從隱式對象中得到數據:

pageScope 例如:${pageScope.user.userName} 相當於<%=page.getAttribute("user").getUserName%> 
requestScope 例如:${requestScope.books} 相當於<%=request.getAttribute("books")%> 
sessionScope 例如:${sessionScope.lastURL} 相當於<%=session.getAttribute("lastURL")%> 
applicationScope 例如:${applicationScope.provice} 相當於<%=application.getAttribute("provice")%>
2.從請求頭中得到數據:

header 例如:${header.referer}得到請求過來的URL
3.訪問JSP頁面中的內置對象:

pageContext 例如:${pageContext.request}在EL表達式中我們是不能直接使用JSP頁面的內置對象,但可以是用pageContext間接得到這些內置對象,再來使用。

  


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM