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

首頁 > 編程 > JSP > 正文

入門教程:JSP標準模板庫(下)

2019-11-18 19:42:15
字體:
來源:轉載
供稿:網友

JSTL標簽庫
JSTL通常被認為是一種單標簽庫。但JSTL實際上有4個標簽庫。這些標簽庫被概括為如下:

核心標簽庫—包含一些Web應用的必要的標簽。核心標簽庫的實例包括循環,表達式賦值和基本輸入輸出。.


格式化/國際化標簽庫—包括被用來解析數據的標簽庫。這種標簽會解析數據,比如日期,不同的場所區域等。


數據庫標簽庫—包含被用來訪問SQL數據庫的標簽。這些標簽通常僅僅只創建原形(PRototype)程序。這個是因為大多數程序不會直接從jsp頁面中來處理數據庫訪問。數據庫訪問應該被嵌入到能夠被JSP頁面所訪問的EJB中。


xml標簽庫—包含被用來訪問XML元素的標簽。因為XML廣泛使用于Web開發,XML的處理是JSTL的一個重要的特征。 
在本文中,我們將僅僅只對核心標簽做一個簡單介紹。我們將考察一個簡單的范例,來說明如何處理用戶在表單中輸入的數據。在我們開始檢查程序之前,我們必須先看看JSTL是如何處理表達式的,JSTL的表達式處理是通過使用EL表達式語言來完成的,僅僅只能在JSP2.0被使用。下一節,我們會考察EL表達式語言。

EL表達式語言
JSP2.0的一個主要的組件就是這個新的叫做EL的表達式語言。EL被廣泛用在JSTL中。然而,重要的是記住,EL是JSP的功能而不是JSTL的。被用在JSP2.0中JSP scriptlet代碼能夠包含EL表達式。下面這行代碼演示了JSP scriptlet代碼中的EL:

<p>
  Your total, including shipping is ${total+shipping}
</p>

正如你看到的,total和shipping相加后會產生HTML并且在瀏覽器中顯示它們的值。這些表達式也可以在JSTL標簽中使用。JSTL1.0的一個重要問題是,JSTL不能用在JSP1.2的版本上。因為JSP1.2不支持EL,所以有必要提供一些額外的JSTL標簽來幫助EL的使用。例如,如果你想使用JSTL來顯示上面的表達式,你可以使用下面的代碼。

<p>
  Your total, including shipping is <c:out var="${total+shipping"/>
</p>

值得注意的是,JSTL不需要JSP2.0來運行。通過提供一個能夠顯示EL表達式的標簽,就可以達到這樣的需求。

JSTL范例
我們將考察一個簡單的使用JSTL的范例。在這個例子里,我們將考察Web應用中的一個常見過程。我們會看到如何提交(POST)一個表單,并處理POST的結果。程序代碼如下:

<%@ taglib uri="http://java.sun.com/jstl/core" prefix="c" %>
<html>
  <head>
    <title>If with Body</title>
  </head>

  <body>
    <c:if test="${pageContext.request.method=='POST'}">
      <c:if test="${param.guess=='Java'}">You guessed it!
      <br />

      <br />

      <br />
      </c:if>

      <c:if test="${param.guess!='Java'}">You are wrong
      <br />

      <br />

      <br />
      </c:if>
    </c:if>

    <form method="post">Guess what computer language
                        I am thinking of?
    <input type="text" name="guess" />

    <input type="submit" value="Try!" />

    <br/>
    </form>
  </body>
</html>

這個簡單的Web頁面顯示一個表單,要求用戶猜測程序所想的計算機語言。當然,計算機想的是“Java”。這個頁面通過檢查“是否已提交”來開始。這使得表單和處理表單的代碼可以放在同一個頁面中。是通過下面的JSTL if語句實現的。

<c:if test="${pageContext.request.method=='POST'}">

現在你看到了,<c:if>標簽使用EL表達式來決定是否請求的方式是POST的。如果數據被post到頁面,那么用戶輸入的他們的猜想值就會存儲在名為“guest”的參數中。這是因為“guest”是表單輸入項的名字。我們現在必須檢查是否這個參數等于“Java”。這個是通過下面的<c:if>標簽來完成:

<c:if test="${param.guess=='Java'}">
          You guessed it!
      </c:if>


正如你所看到的,如果表達式為true,<c:if>標簽的標簽體就被執行。在本文中,我們開始考察了JSTL如何被安裝,以及它是如何運轉的,也提供了一些JSTL小范例幫助大家理解。

JSTL的核心標簽也包含循環,疊代器和變量處理。通過使用標簽,你能在collections里進行iterate,訪問用戶的會話數據(session data),執行其他的核心任務等。除了核心標簽庫,XML,數據庫和格式化標簽庫也提供了更多高級的用處。

(End)

注:EL Expression Language這里翻譯成EL表達式語言,有的是翻譯成EL表達語言,是一個意思。

Translated by Caiyi0903(Willpower),2004.2.19


發表評論 共有條評論
用戶名: 密碼:
驗證碼: 匿名發表
主站蜘蛛池模板: 萍乡市| 当雄县| 绥江县| 阿尔山市| 普定县| 民勤县| 新巴尔虎右旗| 呈贡县| 翁源县| 浦城县| 滕州市| 忻城县| 鹤壁市| 元江| 买车| 邯郸市| 兴仁县| 枣阳市| 阿瓦提县| 涪陵区| 安图县| 房产| 朝阳市| 太谷县| 旌德县| 阜阳市| 建始县| 依安县| 山阳县| 富川| 山东| 昌平区| 龙岩市| 达拉特旗| 柞水县| 玉环县| 夏河县| 平定县| 扎囊县| 抚顺市| 泰和县|