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

首頁 > 學院 > 開發設計 > 正文

JSTL 入門:探討如何利用 core 庫

2019-11-18 11:50:18
字體:
來源:轉載
供稿:網友

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

  

   示例應用程序

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

  

  

圖 1. Weblog 應用程序

  

 JSTL 入門:探討如何利用 core 庫(圖一)

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

  

  

圖 2. Weblog 應用程序的類圖

  

 JSTL 入門:探討如何利用 core 庫(圖二)

   Entry 類表示 Weblog 中一個標有日期的項。其 id 屬性用于在數據庫中存儲及檢索該項,而 title 和 text 屬性則表示該項的實際內容。created 和 lastModified 屬性引用了 Java 語言中 Date 類的兩個實例,分別用來表示最初創建該項的時間和最后編輯該項的時間。author 屬性引用了標識該項的創建者的 UserBean 實例。

  

   UserBean 類存儲了有關應用程序的已認證用戶的信息,如用戶名、全名和電子郵件地址。該類還包含一個用于與相關數據庫進行交互的 id 屬性。其最后一個屬性 roles 引用一列 String 值,這列值標識與相應用戶相關的、特定于應用程序的角色。對于 Weblog 應用程序,相關的角色是“User”(所有應用程序用戶常用的缺省角色)和“Author”(該角色指定可以創建和編輯 Weblog 項的用戶)。

  

   流控制

   由于可以用 EL 替代 JSP 表達式來指定動態屬性值,因此頁面創作人員無需使用腳本編制元素。因為腳本編制元素可能是引起 JSP 頁面中維護問題的主要原因,所以 JSTL 的主要優點就在于提供了這樣簡單(且標準)的替代方法。

  

   EL 從 JSP 容器檢索數據,遍歷對象層次結構,然后對結果執行簡單的操作。不過,除了訪問和操作數據之外,JSP 腳本編制元素的另一個常見用法是流控制。尤其是,頁面創作人員常借助 scriptlet 來實現迭代或條件內容。然而,因為這樣的操作超出了 EL 的能力,所以 core 庫提供了幾個定制操作來治理流控制,其形式有迭代、條件化和異常處理。

  

   迭代

   在 Web 應用程序環境中,迭代主要用于訪存和顯示數據集,通常是以列表或表中的一系列行的形式顯示。實現迭代內容的主要 JSTL 操作是 定制標記。該標記支持兩種不同樣式的迭代:整數范圍上的迭代(類似 Java 語言的 for 語句)和集合上的迭代(類似 Java 語言的 Iterator 和 Enumeration 類)。

  

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

  

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

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

    body content

  

  

   當出現 step 時,它也必須是整數值。它指定每次迭代后索引的增量。這樣,迭代索引從 begin 屬性的值開始,以 step 屬性的值為增量進行遞增,在迭代索引超過 end 屬性的值時停止迭代。注:假如省略了 step 屬性,那么步長缺省為 1。

  

   假如指定了 var 屬性,那么將會創建一個帶有指定名稱的并限定了作用域的變量,并將每次迭代的當前索引值賦給該變量。這一限定了作用域的變量具有嵌套式可視性 — 只可以在 標記體內對其進行訪問。(我們很快將討論可選屬性 varStatus 的用法。)清單 2 顯示了對一組固定整數值進行迭代的 操作示例。



發表評論 共有條評論
用戶名: 密碼:
驗證碼: 匿名發表
主站蜘蛛池模板: 平山县| 驻马店市| 涿州市| 黎平县| 大邑县| 喀喇沁旗| 高台县| 利辛县| 滁州市| 礼泉县| 宝坻区| 锡林浩特市| 嘉义县| 和林格尔县| 封丘县| 安吉县| 乐昌市| 吉林省| 松溪县| 汤原县| 蒲城县| 敦化市| 芒康县| 南阳市| 花莲市| 乌兰察布市| 射阳县| 许昌市| 库尔勒市| 亳州市| 南陵县| 崇阳县| 竹山县| 巴林左旗| 新疆| 滕州市| 朝阳区| 双峰县| 泽库县| 奇台县| 朝阳市|