EL表達式

頁面顯示信息的方式:


1、 EL表達式,就是用來獲取以下三種數據類型的信息

1:集合或是。

2:數組

3:Bean

所有的隱藏對象,全部的都是Map類型

 除了pageContext




一、EL表達式簡介:

  

lEL(ExpressionLanguage)表達式,語言是在JSP2.0入的新特性,它用於在JSP文件中進行數據訪問。即從各個域對像中取出數據用於顯示。
•  如:${name}相當於<%=pageContext.getAttribute(“name”)%>
  lEL表達式,可以用來替代傳統的基於<%=…%>的Java形式。
  lEL表達式,可以替代<jsp:getProperty…/>這樣的jsp標籤。
•如${person.name}
•相當於<jsp:getProperty name=“person” property=“name”/>
l

二:EL表達式語法:


lEL表達式的基本語法爲:${var},所有的表達式,都以${開頭,以}結尾。
l如果使用EL表達式如${name},它將會pageContext,request,session,application範圍內依次查找,如果找到就將內容顯示到頁面上,如果沒有就顯示空字符串,這一點一定要區別與jsp:getProperty,在使用jsp:getProperty時,如果屬性值爲null,則會在頁面上顯示null的字符串,而EL表達式,在頁面上顯示空字符串。

三:EL表達式訪問對像的屬性及數組元素

EL表達式,可以使用.(點)來訪問對像的屬性,如:
${person.name}表示Person對像的name屬性。
注意:EL表達式,不僅可以獲取JavaBean的屬性,還可以獲取Map中的屬性,使用方法一樣,這一點顯示了EL表達式的靈活之處。
如:
EL表達式,可以使用[…]來訪問對像的屬性,如:
${person[“name”]}表示Person對對象的name屬性。
EL表達式,可以使用[idx]來訪問數組的元素,如:
${person[0]}表示第一個person對象。


四:EL的運算符:

l算術運算符:+- * / %
l比較運算符:==、!=、<、>、<=、>=
l邏輯運算符:&&、||、!(取反)
lempty運算符:如${emptyname}如果name爲null或空字符串,就返回true。
l條件運算符:${a?b:c},如:${16>5?16:5}
l
l關於empty的更多說明:
如果測試的某個變量不存在,即沒有定義則返回true.
如果變量的值爲null則返回true.
如果是一個List或Map,且此集合中不包含任何元素仍然爲true.
可以使用${!empty var}進行取反操作


empty運算符

 <%

 Person person = new Person();

  pageContext.setAttribute("person",person);

 List<String> list = new ArrayList<String>();

  pageContext.setAttribute("list",list);

 Map<String,Object> map = new HashMap<String,Object>();

  pageContext.setAttribute("map",map);

 %>

${empty person}<br/><!-- 返回false,因爲person是實例對像 -->

${empty list}<br/><!-- 返回true,因爲list沒有數據 -->

${empty map}<br/><!-- 返回true -->

${!empty map}<br/><!-- 返回false-->



五:EL的隱含對像



1.表示HTTP請求的特定數據:



2.表示特定範圍:

${pageScope.name}<!-- 等價與pageContext.getAttribute("name") -->

<br/>

${requestScope.name}<!-- 等價與request.getAttribute("name") -->


以下是獲取某個範疇中值:

<body>

    <%

       pageContext.setAttribute("name","Jack");

       pageContext.setAttribute("name","Rose",PageContext.REQUEST_SCOPE);

    %>

    <hr/>

    <%=pageContext.getAttribute("name",PageContext.REQUEST_SCOPE)%>

    <hr/>

    <!-- 相當於pageContext.findAttribute("name")如果找不到就返回""空串 -->

    ${name}

    <br/>

    <!-- 獲取某個指定的數據,可以指定從哪兒取 -->

    ${requestScope['name']}

    <br/>

    ${requestScope.name


以下是用EL獲取cookie的值

<body>

    ${cookie['JSESSIONID'].value}

    <br/>

    ${cookie.JSESSIONID['value']}


3:在EL中使用PageContext獲取上下文




4.表示Web應用的初始化參數:



六:EL表達式的優點和不足:




發佈了59 篇原創文章 · 獲贊 7 · 訪問量 5萬+
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章