JSTL c:import 總結學習

來源:互聯網
上載者:User

為什麼要採用JSTL?

   在核心JSP標記上使用JSTL有以下幾大優勢。

   首先,JSTL現在採用獨立於JSP標記的規範來定義。因此,即使JSP規範發生改動,也可以保證JSTL標記的一致性。容易受到JSP容器變更影響的許多應用程式都將受益於JSTL規範.

   其次,JSTL具有比核心JSP標記更強大的功能,正如您在最佳實務系列中所視, c:import不僅 可以匯入其它網站的URL,而且,它還可以匯入 jsp:include 標記停用更為複雜的內容。

   最後,JSTL使用自己的運算式語言(通常簡稱為EL)。JSTL EL可以相當靈活地寫入JSP代碼,是對核心JSP語言的有力補充。

  

JSTL的 c:import 在模仿JSP的include原理。但是,如果深入研究 c:import (或任何JSTL標記),您將發現許多其它功能。除了分配參數並管理本地檔案內容以外, c:import 還可以引入外部網站的內容。

   類似於 jsp:include , c:import 使用各種參數以便可在Web網站靈活移動內容。但與include指令不同,c:import 並不限制訪問本地檔案。

 

 

jsp:include:

 

<jsp:include page="header.jsp" flush="true">
     <jsp:param name="pageTitle" value="newInstance.com"/>
     <jsp:param name="pageSlogan" value=" " />
</jsp:include>

JSTL C:import

<c:import url="header.jsp">
     <c:param name="pageTitle" value="newInstance.com"/>
     <c:param name="pageSlogan" value=" " />
</c:import>

 

c:param 和 jsp:param 非常相似。

 

匯入外部內容

     使用 c:import 的真正優勢在於,它可以引入外部Web網站的內容或Web應用程式。在前面學習jsp:includes時,您可能已經注意到,我們使用file(檔案)屬性來為include指定靜態內容。file(檔案)屬性正如其名稱所示:使您可以引入本地檔案的內容。 c:import 的相應屬性為 url ,它也正如其名稱所示:使您能夠引入任何URL。c:import 不僅可以使用本地檔案的內容來填充您的網站網頁,而且還允許您引入任何URL的內容,使其它網站的內容可以真正靈活地適應您自己網站的外觀和風格。

 

<%@ page language="java" contentType="text/html" %> <%@ taglib prefix="c" uri="http://java.sun.com/jstl/core" %> <html> <head>      <title>newInstance.com</title>      <meta http-equiv="Content-Type"         content="text/html; charset=iso-8859-1" />      <link href="/styles/default.css" rel="stylesheet" type="text/css" /> </head> <body> <c:import url="header.jsp">      <c:param name="pageTitle"         value="newInstance.com :: True North Guitars"/>      <c:param name="pageSlogan" value="...building it from scratch" /> </c:import> <%@ include file="/navigation.jsp" %> <c:import url="bookshelf.jsp" /> <c:import    url="http://www.truenorthguitars.com/Clients/Richman/index.htm" /> <%@ include file="/footer.jsp" %> </body> </html> 

 

 

 

       這些代碼看上去沒有問題——但是,如果您試著在自己網站運行,您很快就會發現問題。所有映像都不顯示,並且相關連結全部出現故障。當然,如果仔細想想,原因很很簡單。因為外部資源(本例中是影像檔)被解釋(interpreted),而您將解釋結果直接匯入您的輸出資料流。外部影像檔連結如 /images/guitar-01-24.jpg 將顯示不存在。解決該問題的唯一方法是將原映像複製到您的網站,與簡單的匯入相比,這是一項完全不同(並且消耗更多時間)的技術。

因此,最好知道要匯入的外部內容是否是純文字。例如,要考慮串連到系統管理員的網站及其本身的標頭檔、腳註檔案、外觀和風格。該網站的網頁詳細說明如何設定 README 檔案,以便使用者可以查看如何使用該網站。

聯繫我們

該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在5個工作日內處理。

如果您發現本社區中有涉嫌抄襲的內容,歡迎發送郵件至: info-contact@alibabacloud.com 進行舉報並提供相關證據,工作人員會在 5 個工作天內聯絡您,一經查實,本站將立刻刪除涉嫌侵權內容。

A Free Trial That Lets You Build Big!

Start building with 50+ products and up to 12 months usage for Elastic Compute Service

  • Sales Support

    1 on 1 presale consultation

  • After-Sales Support

    24/7 Technical Support 6 Free Tickets per Quarter Faster Response

  • Alibaba Cloud offers highly flexible support services tailored to meet your exact needs.