1. 程式人生 > >EL表示式與JSTL簡單入門

EL表示式與JSTL簡單入門

EL概述

       EL(Express Lanuage)表示式可以嵌入在jsp頁面內部,減少jsp指令碼的編寫,EL出現的目的是要替代jsp頁面中指令碼的編寫。

       簡單來說EL表示式就是讓程式設計師,簡化了程式碼的書寫量。在學EL表示式之前我們必須通過<%=      %>來取出域中的資料,但這種方式        過於繁瑣,所以就誕生了EL表示式。

EL取出JSP四大域物件中儲存的資料

  • pageContext域:${pageScope.key};
  • request域:${requestScope.key};
  • session域:${sessionScope.key};
  • application域:${applicationScope.key};

EL從四個域中獲得某個值

    寫法:${key};

    例:如果在request域中儲存了一個名為"productList"的物件,我們不需要通過${requestScope.productList}取出相應的物件,只需要${productList}即可取出相應的物件。

   相當於pageContext.findAttribute()從pageContext域,request域,session域,application域中獲取屬性,在某個域中獲取後將不在向後尋找.

JSTL概述

     JSTL(JSP Standard Tag Library),JSP標準標籤庫,可以嵌入在jsp頁面中使用標籤的形式完成業務邏輯等功能。jstl出現的目的同el一樣也是要代替jsp頁面中的指令碼程式碼。JSTL標準標籤庫有5個子庫,但隨著發展,目前常使用的是他的核心庫。

JSTL五大子庫

    Core (核心庫)  標籤庫的URI:http://java.sun.com/jsp/jstl/core  常用字首:c

    I18N(國際化)   標籤庫的URI:http://java.sun.com/jsp/jstl/fmt 常用字首:fmt

    SQL                     標籤庫的URI:http://java.sun.com/jsp/jstl/sql  常用字首:sql

    XML                    標籤庫的URI:http://java.sun.com/jsp/jstl/xml 常用字首:x

    Functions            標籤庫的URI:http://java.sun.com/jsp/jstl/functions  常用字首:fn 

下載與匯入

    下載:Apache的網站下載JSTL的JAR包。進入“http://archive.apache.org/dist/jakarta/taglibs/standard/binaries/”網址下載 JSTL的壓縮包。jakarta-taglibs-standard-1.1.2.zip

    匯入:解壓後在lib目錄下可以看到兩個JAR檔案,分別為jstl.jar和standard.jar。其中,jstl.jar檔案包含JSTL規範中定義的介面和相關類,standard.jar檔案包含用於實現JSTL的.class檔案以及JSTL中5個標籤庫描述符檔案(TLD),將兩個檔案匯入專案中。

JSTL核心庫的使用

  • <c:if>標籤

          1. 語法格式:

                       <c:if  test="xxx"   [var="xxx"]   [scope="{page|request|session|application}"]  >

                                        執行體

                       </c:if>

           2. 標籤屬性講解:

                      test屬性:用於設定邏輯表示式,當邏輯表示式為true時執行執行體

                      var屬性:用於指定邏輯表示式中變數的名字

                       scope屬性:用於指定var變數的作用範圍,預設值是page。

           3.用法案例: 

  • <c:forEach>標籤  

     兩種語法格式:

                1.迭代集合物件:

                                <c:forEach items="xxx"   [var="xxx"]   [varStatus="xxx"]   [begin="xxx"]   [end="xxx"]   [step="xxx"]>
                                             迴圈體.....
                                </c:forEach>

                 2.迭代陣列:

                                 <c:forEach   begin="xxx"  end="xxx"   [var="xxx"]   [varStatus="xxx"]   [step="xxx"]>
                                              迴圈體....
                                 </c:forEach>

    標籤屬性講解:

                1.items屬性用於指定將要迭代的物件

2.var屬性用於指  將當前迭代到的元素儲存到page域中的名稱(可以通過${xxx}獲得物件)

                3.varStatus屬性用於指定當前迭代狀態資訊的物件儲存到page域中的名稱

                         varStatus屬性可以獲取以下資訊:

                                       count:表示元素在集合中的序號,從1開始

                                       index:表示當前元素在集合中的索引,從0開始

                                       first:表示當前是否為集合中的第一個元素

                                       last:表示當前元素是否為集合中最後一個元素         

                 4.begin屬性用於指定從集合中的第幾個元素開始迭代,begin的索引值從0開始              

                 5.step屬性用於指定迭代的步長,即迭代的增長因子

   用法案例:

             迭代集合物件:

              迭代陣列元素:

總結

       在前端JSP頁面中會經常用到EL表示式,和JSTL標籤庫,EL表示式使得取出request域和其它域中資料變得極其方便,JSTL免去了<%=    %>的繁瑣操作。我介紹的JSTL的兩個標籤是核心庫中最常用的兩個,它們兩個標籤可以解決大多數問題。當然JSTL標籤庫中的標籤遠不止這些,有興趣的小夥伴可以深入瞭解。

下面是博主的其他文章,喜歡的博友們點個關注,謝謝您的支援。