通過閱讀本系列的第一篇文章,您對 JSTL 有了初步的了解。我們描述了使用其表達式語言(EL)來訪問數(shù)據(jù)和操作數(shù)據(jù)。正如您所了解的那樣,EL 用來為 JSTL 定制標記的屬性賦予動態(tài)值,因此,它所起的作用與 JSP 表達式一樣,為內(nèi)置操作及其它定制標記庫指定請求時的屬性值。
為了演示 EL 的用法,我們介紹了 core 庫中的三個標記: 示例應用程序 為了演示 JSTL 標記,我們將使用來自一個工作應用程序的示例,本系列中余下的文章都將使用此應用程序。由于基于 java 的 Weblog 日漸流行及為人們所熟悉,因此我們將出于此目的使用一個簡單的基于 Java 的 Weblog;參閱參考資料以下載該應用程序的 JSP 頁面和源代碼。Weblog(也稱為 blog)是一種基于 Web 的簡短注釋的日志,這些注釋是有關 Weblog 的作者所感愛好的主題,通常帶有與 Web 上其它地方的相關文章及討論的鏈接。圖 1 中顯示了該應用程序正在運行時的抓屏。 圖 1. Weblog 應用程序 雖然完整的實現(xiàn)需要二十四個 Java 類,但在表示層中卻只涉及 Weblog 應用程序中的兩個類,Entry 和 UserBean。這樣,對于理解 JSTL 示例而言,只有這兩個類比較重要。圖 2 顯示了 Entry 和 UserBean 的類圖。 圖 2. Weblog 應用程序的類圖 Entry 類表示 Weblog 中一個標有日期的項。其 id 屬性用于在數(shù)據(jù)庫中存儲及檢索該項,而 title 和 text 屬性則表示該項的實際內(nèi)容。created 和 lastModified 屬性引用了 Java 語言中 Date 類的兩個實例,分別用來表示最初創(chuàng)建該項的時間和最后編輯該項的時間。author 屬性引用了標識該項的創(chuàng)建者的 UserBean 實例。 UserBean 類存儲了有關應用程序的已認證用戶的信息,如用戶名、全名和電子郵件地址。該類還包含一個用于與相關數(shù)據(jù)庫進行交互的 id 屬性。其最后一個屬性 roles 引用一列 String 值,這列值標識與相應用戶相關的、特定于應用程序的角色。對于 Weblog 應用程序,相關的角色是“User”(所有應用程序用戶常用的缺省角色)和“Author”(該角色指定可以創(chuàng)建和編輯 Weblog 項的用戶)。 流控制 由于可以用 EL 替代 JSP 表達式來指定動態(tài)屬性值,因此頁面創(chuàng)作人員無需使用腳本編制元素。因為腳本編制元素可能是引起 JSP 頁面中維護問題的主要原因,所以 JSTL 的主要優(yōu)點就在于提供了這樣簡單(且標準)的替代方法。 EL 從 JSP 容器檢索數(shù)據(jù),遍歷對象層次結(jié)構,然后對結(jié)果執(zhí)行簡單的操作。不過,除了訪問和操作數(shù)據(jù)之外,JSP 腳本編制元素的另一個常見用法是流控制。尤其是,頁面創(chuàng)作人員常借助 scriptlet 來實現(xiàn)迭代或條件內(nèi)容。然而,因為這樣的操作超出了 EL 的能力,所以 core 庫提供了幾個定制操作來治理流控制,其形式有迭代、條件化和異常處理。 迭代 在 Web 應用程序環(huán)境中,迭代主要用于訪存和顯示數(shù)據(jù)集,通常是以列表或表中的一系列行的形式顯示。實現(xiàn)迭代內(nèi)容的主要 JSTL 操作是 進行整數(shù)范圍迭代用到了清單 1 中所示的 清單 1. 通過
新聞熱點
疑難解答