06.22 關於JSTL標籤庫的概述與示例

表達式語言(Expression Language),或稱EL表達式,簡稱EL,是Java中的一種特殊的通用編程語言,借鑑於JavaScript和XPath。主要作用是在Java Web應用程序嵌入到網頁(如JSP)中,用以訪問頁面的上下文以及不同作用域中的對象 ,取得對象屬性的值,或執行簡單的運算或判斷操作。EL在得到某個數據時,會自動進行數據類型的轉換。

以“${”開始,以“}”作為結束:

${EL表達式}

獲取某對象的值可以直接寫入對象的名稱,如獲取對象名為“user”的對象的值:

${user}

獲取某對象的屬性的值使用點操作符(“.”操作符),如獲取對象user的name屬性和age屬性的值的語法如下:

${user.name}

${user.age}

示例:往四大作用域中存入一些數據,通過以前的Java代碼來取出數據

關於JSTL標籤庫的概述與示例

關於JSTL標籤庫的概述與示例

然後我們通過EL表達式取出作用域中的數據:

關於JSTL標籤庫的概述與示例關於JSTL標籤庫的概述與示例

從中可以看出,當我們沒有指定作用域的時候,數據會依此從page--request--session--application中取數據,當取到數據時候,就不會繼續查找。所以name.name 取出的是page存入的數據“小李”

當然我們也不需要通過get方式取出對象。這種方式簡化代碼。

關於EL表達式的內置對象:

關於JSTL標籤庫的概述與示例

關於EL執行表達式:

示例如下:

關於JSTL標籤庫的概述與示例關於JSTL標籤庫的概述與示例

JSTL介紹:

JSP標準標籤庫(JSP Standard Tag Library)是Java EE網絡應用程序開發平臺的組成部分。它在JSP規範的基礎上,擴充了一個JSP的標籤庫來完成一些通用任務,比如XML數據處理、條件執行、數據庫訪問、循環和國際化。

關於JSTL標籤庫的概述與示例

使用之前先介紹一下在idea中配置JSTL

先區官網下載jstl標籤庫 百度搜索即可,解壓後:

關於JSTL標籤庫的概述與示例

複製解壓文件 lib文件夾中的jar包到IDEA的項目中:

關於JSTL標籤庫的概述與示例

打開idea設置界面:找到Schemas and DTDs,選擇綠色加號

關於JSTL標籤庫的概述與示例

在URI上填寫這個地址,然後打開explorer 找到剛才解壓的文件

關於JSTL標籤庫的概述與示例

選擇c.tld

關於JSTL標籤庫的概述與示例

然後在jsp頁面中導入jsp標籤庫:

關於JSTL標籤庫的概述與示例

到這裡就完成JSTL的配置工作。

關於c:if標籤示例:

類似微博關注與取消關注的功能,當我們點擊關注某人後,頁面顯示取消關注,取消關注頁面則顯示關注:

servlet用來接收參數然後進行轉發

關於JSTL標籤庫的概述與示例

頁面獲取參數值進行邏輯判斷:

關於JSTL標籤庫的概述與示例

測試:

關於JSTL標籤庫的概述與示例

關於JSTL標籤庫的概述與示例

需注意的是,當我們使用轉發的時候是可以拿到request域中的值

關於JSTL標籤庫的概述與示例

關於JSTL標籤庫的概述與示例

當我們使用重定向的時候,就獲取不到

關於JSTL標籤庫的概述與示例

關於JSTL標籤庫的概述與示例

這是因為轉發只在服務器內部跳轉,攜帶了上一次請求的的request和response,客戶端只做一次請求。重定向則是服務器響應的是一個網址,客戶端再次去請求一個網站,所以整個過程中,存在兩個req res 而我們的值則是保存在第一個req域中,所以無法獲取。

關於c:forEach標籤示例:

事先往list集合存入若干個對象,並放入作用域中:

關於JSTL標籤庫的概述與示例

使用C:forEach遍歷集合:兩種方式

關於JSTL標籤庫的概述與示例

測試:

關於JSTL標籤庫的概述與示例


分享到:


相關文章: