国产探花免费观看_亚洲丰满少妇自慰呻吟_97日韩有码在线_资源在线日韩欧美_一区二区精品毛片,辰东完美世界有声小说,欢乐颂第一季,yy玄幻小说排行榜完本

首頁 > 學院 > 開發(fā)設計 > 正文

JSTL 入門(2):探討 core——使用定制標記進行流控制和 URL 管理

2019-11-18 11:50:43
字體:
供稿:網(wǎng)友

  顧名思義,jsp 標準標記庫(JSP Standard Tag Library,JSTL)core 庫為一些基本功能(如,治理限定了作用域的變量和與 URL 交互等)和基本操作(如,迭代和條件化)提供了定制標記。這些標記不僅可以由頁面設計人員直接利用,而且還為與其它 JSTL 庫相結(jié)合從而提供更復雜的表示邏輯奠定了基礎。Mark Kolb 在本文中繼續(xù)對 JSTL 和 core 庫進行探討,研究用標記來協(xié)助流控制和 URL 治理。

   通過閱讀本系列的第一篇文章,您對 JSTL 有了初步的了解。我們描述了使用其表達式語言(EL)來訪問數(shù)據(jù)和操作數(shù)據(jù)。正如您所了解的那樣,EL 用來為 JSTL 定制標記的屬性賦予動態(tài)值,因此,它所起的作用與 JSP 表達式一樣,為內(nèi)置操作及其它定制標記庫指定請求時的屬性值。

  

   為了演示 EL 的用法,我們介紹了 core 庫中的三個標記: 用于治理限定了作用域的變量;而 用于顯示數(shù)據(jù),尤其是顯示用 EL 計算出的值。在此基礎上,接下來本文把注重力集中在 core 庫的其余標記上,這些標記可以大致歸為兩大類別:流控制和 URL 治理。

  

   示例應用程序

   為了演示 JSTL 標記,我們將使用來自一個工作應用程序的示例,本系列中余下的文章都將使用此應用程序。由于基于 java 的 Weblog 日漸流行及為人們所熟悉,因此我們將出于此目的使用一個簡單的基于 Java 的 Weblog;參閱參考資料以下載該應用程序的 JSP 頁面和源代碼。Weblog(也稱為 blog)是一種基于 Web 的簡短注釋的日志,這些注釋是有關 Weblog 的作者所感愛好的主題,通常帶有與 Web 上其它地方的相關文章及討論的鏈接。圖 1 中顯示了該應用程序正在運行時的抓屏。

    JSTL 入門(2):探討 core——使用定制標記進行流控制和 URL 治理(圖一)

點擊查看大圖

   圖 1. Weblog 應用程序

   雖然完整的實現(xiàn)需要二十四個 Java 類,但在表示層中卻只涉及 Weblog 應用程序中的兩個類,Entry 和 UserBean。這樣,對于理解 JSTL 示例而言,只有這兩個類比較重要。圖 2 顯示了 Entry 和 UserBean 的類圖。

  

    JSTL 入門(2):探討 core——使用定制標記進行流控制和 URL 治理(圖二)

   圖 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ù)范圍上的迭代(類似 Java 語言的 for 語句)和集合上的迭代(類似 Java 語言的 Iterator 和 Enumeration 類)。

  

   進行整數(shù)范圍迭代用到了清單 1 中所示的 標記的語法。begin 和 end 屬性要么是靜態(tài)整數(shù)值,要么是可以得出整數(shù)值的表達式。它們分別指定迭代索引的初始值以及迭代索引的終止值。當使用 在整數(shù)范圍內(nèi)進行迭代時,這兩個屬性是必需的,而其它所有屬性都是可選的。

  

   清單 1. 通過 操作進行數(shù)字迭代的語法

      begin="eXPression" end="expression" step="expression">



上一篇:notyy 的junit教程

下一篇:Java語言基礎 一

發(fā)表評論 共有條評論
用戶名: 密碼:
驗證碼: 匿名發(fā)表
主站蜘蛛池模板: 兴义市| 玛沁县| 固始县| 江安县| 乌拉特后旗| 长宁县| 紫云| 美姑县| 西吉县| 平南县| 临沭县| 龙里县| 澳门| 大方县| 陆丰市| 江孜县| 双辽市| 灌南县| 宝兴县| 齐河县| 库车县| 日土县| 宜丰县| 秀山| 定南县| 寿阳县| 东源县| 邛崃市| 石柱| 思南县| 巴塘县| 波密县| 商城县| 五大连池市| 宣威市| 昆明市| 西藏| 盘锦市| 铅山县| 萨迦县| 始兴县|