基礎(chǔ)圖文說(shuō)明教程:JSP規(guī)范模板庫(kù)(上)
發(fā)表時(shí)間:2024-01-17 來(lái)源:明輝站整理相關(guān)軟件相關(guān)文章人氣:
[摘要]簡(jiǎn)介JSP標(biāo)準(zhǔn)模板庫(kù)(JSTL)是SUN公司發(fā)布的一個(gè)針對(duì)JSP開(kāi)發(fā)的新組件。JSTL允許你使用標(biāo)簽(tags)來(lái)進(jìn)行JSP頁(yè)面開(kāi)發(fā),而不是使用多數(shù)JSP程序員已經(jīng)習(xí)慣了的scriptlet代碼方式開(kāi)發(fā)。JSTL幾乎能夠做到傳統(tǒng)JSP scriptlet代碼能做的任何事情。你可能會(huì)疑惑,為什么我們...
簡(jiǎn)介
JSP標(biāo)準(zhǔn)模板庫(kù)(JSTL)是SUN公司發(fā)布的一個(gè)針對(duì)JSP開(kāi)發(fā)的新組件。JSTL允許你使用標(biāo)簽(tags)來(lái)進(jìn)行JSP頁(yè)面開(kāi)發(fā),而不是使用多數(shù)JSP程序員已經(jīng)習(xí)慣了的scriptlet代碼方式開(kāi)發(fā)。JSTL幾乎能夠做到傳統(tǒng)JSP scriptlet代碼能做的任何事情。你可能會(huì)疑惑,為什么我們需要另一種這樣的HTML生成語(yǔ)言呢?
STL允許JSP程序員使用tags而不是JAVA代碼來(lái)編程。為了展示為什么這個(gè)是更優(yōu)越的,下面將給出示例。我們會(huì)檢查一個(gè)非常簡(jiǎn)單的從1數(shù)到10的JSP頁(yè)面。我們將通過(guò)兩種方法來(lái)檢查,一種是基于JSP的scriptlet,一種是JSTL。當(dāng)這個(gè)計(jì)數(shù)器頁(yè)面的例子是用JSP scriptlet來(lái)編寫(xiě)時(shí),JSP頁(yè)面如下所示:
<html>
<head>
<title>Count to 10 in JSP scriptlet</title>
</head>
<body>
<%
for(int i=1;i<=10;i++)
{%>
<%=i%><br/>
<%
}
%>
</body>
</html>
正如你在上例中看到的看到的那樣,使用scriptlet代碼產(chǎn)生的頁(yè)面源代碼會(huì)包含混合的HTML標(biāo)簽和JAVA語(yǔ)句。這種混合型的編程方式不是最佳的方式,其主要原因有以下幾點(diǎn)。
主要的原因是它的可讀性。這個(gè)可讀性主要依賴(lài)于人類(lèi)和計(jì)算機(jī)。JSTL可以允許程序員查看一個(gè)只包含完整HTML和類(lèi)似HTML的標(biāo)簽的頁(yè)面。
SP scriptlet代碼的可讀性不適合人類(lèi)。這種混合的scriptlet和HTML代碼對(duì)于計(jì)算機(jī)來(lái)說(shuō)也很難讀。尤其是針對(duì)那些HTML官方工具如Dreamweaver和Microsoft FrontPage,所表現(xiàn)出來(lái)的不直觀性更突出。目前,大多數(shù)HTML官方工具會(huì)以不可編輯塊(non-editable blocks)的形式來(lái)隔離JSP scriptlet代碼。這種HTML官方工具通常是不能直接修改JSP scriptlet代碼的。
下面這段代碼展示這個(gè)計(jì)數(shù)器范例如何使用JSTL方式來(lái)編寫(xiě)。正如你所看到的,這個(gè)代碼列表有不變性,僅僅一個(gè)標(biāo)簽被使用。HTML和JSTL標(biāo)簽混合起來(lái)產(chǎn)生了這個(gè)程序。
<%@ taglib uri="http://java.sun.com/jstl/core" prefix="c" %>
<html>
<head>
<title>Count to 10 Example (using JSTL)</title>
</head>
<body>
<c:forEach var="i" begin="1" end="10" step="1">
<c:out value="${i}" />
<br />
</c:forEach>
</body>
</html>
當(dāng)你檢查上面這個(gè)例子的代碼時(shí),你會(huì)看到,JSP頁(yè)面只包含標(biāo)簽。上面的代碼使用諸如<head>和<br>這樣的HTML標(biāo)簽。這種標(biāo)簽用法不限制于HTML標(biāo)簽。這段代碼也可以使用諸如<c:forEach>和<c:out>這樣的JSTL標(biāo)簽。在本文中,將會(huì)介紹一些JSTL的基礎(chǔ)。
安裝JSTL
要使用JSTL,你必須安裝有一個(gè)JSP1.2(或者更高版本)的容器。最普通的JSP容器是Apache Tomcat。你能夠從http://jakarta.apache.org/tomcat/這里下載到。獨(dú)立的Tomcat允許你使用常規(guī)的JSP scriptlet代碼。要使用JSTL,你必須在Tomcat中安裝JSTL。JSTL的主要URL是 http://java.sun.com/products/jsp/jstl/。要使用JSTL,必須解壓這個(gè)文件,然后將它安裝到Tomcat的正確位置。
要在Tomcat中安裝JSTL,有下面三個(gè)步驟:
拷貝JSTL JAR文件到Tomcat的lib目錄中.
如果你使用的是Windows, 那么lib目錄最可能的位置是C:\Program Files\Apache Tomcat 4.0\webapps\ROOT\WEB-INF\lib。你應(yīng)該拷貝這些JAR包到你的Tomcat JAR目錄。
拷貝JSTL TLD文件到Tomcat的web-inf目錄中
你檢查JSTL發(fā)布文件時(shí),你應(yīng)該會(huì)注意到有8個(gè)文件是以TLD擴(kuò)展名結(jié)尾的。所有這8個(gè)文件都應(yīng)該復(fù)制到你的web-inf目錄中。
修改web.xml文件包含這些TLD文件。
最后,你必須修改你的web.xml,添加8個(gè)標(biāo)簽庫(kù)的表項(xiàng)(entry)。需要添加的表項(xiàng)如下所示:
<taglib>
<taglib-uri>http://java.sun.com/jstl/fmt</taglib-uri>
<taglib-location>/WEB-INF/fmt.tld</taglib-location>
</taglib>
<taglib>
<taglib-uri>http://java.sun.com/jstl/fmt-rt</taglib-uri>
<taglib-location>/WEB-INF/fmt-rt.tld</taglib-location>
</taglib>
<taglib>
<taglib-uri>http://java.sun.com/jstl/core</taglib-uri>
<taglib-location>/WEB-INF/c.tld</taglib-location>
</taglib>
<taglib>
<taglib-uri>http://java.sun.com/jstl/core-rt</taglib-uri>
<taglib-location>/WEB-INF/c-rt.tld</taglib-location>
</taglib>
<taglib>
<taglib-uri>http://java.sun.com/jstl/sql</taglib-uri>
<taglib-location>/WEB-INF/sql.tld</taglib-location>
</taglib>
<taglib>
<taglib-uri>http://java.sun.com/jstl/sql-rt</taglib-uri>
<taglib-location>/WEB-INF/sql-rt.tld</taglib-location>
</taglib>
<taglib>
<taglib-uri>http://java.sun.com/jstl/x</taglib-uri>
<taglib-location>/WEB-INF/x.tld</taglib-location>
</taglib>
<taglib>
<taglib-uri>http://java.sun.com/jstl/x-rt</taglib-uri>
<taglib-location>/WEB-INF/x-rt.tld</taglib-location>
</taglib>
完成上面這三步后,你現(xiàn)在可以準(zhǔn)備測(cè)試你的JSTL安裝了。可以通過(guò)創(chuàng)建一個(gè)包含JSTL的JSP頁(yè)面來(lái)驗(yàn)證。一個(gè)最簡(jiǎn)單的范例程序就是上面的那個(gè)計(jì)數(shù)器程序。你應(yīng)該將它放置在你的Webroot目錄中(C:\Program Files\Apache Tomcat 5.0\webapps\ROOT)。一旦Tomcat啟動(dòng)后,你應(yīng)該能夠通過(guò)瀏覽 http://127.0.0.1:8080/count.jsp來(lái)查看這個(gè)頁(yè)面。
如果你沒(méi)有正確安裝JSTL,那么可能不會(huì)出現(xiàn)錯(cuò)誤信息。如果JSTL不能解釋你的標(biāo)簽含義,那么它在Web瀏覽器上會(huì)直接跳過(guò)。然后Web瀏覽器將解釋這些未知的HTML標(biāo)簽。多數(shù)瀏覽器僅僅只是忽略這些未知的HTML標(biāo)簽。
To be continued......
Translated by Caiyi0903(Willpower),2004.2.19