本文出自:
在傳統 jsp 中,想要實現頁面布局管理比較麻煩,為了解決在 jsp 中布局的問題,出現了很多開源軟體,比如 apache tiles 和 sitemesh 就是其中比較優秀的。但是使用開源軟體實現布局或多或少會產生一些效能問題,有沒有辦法在不依賴第三方開源軟體的情況下,使用 jsp 本身來實現頁面布局呢?
jsp 2.0 引入了 fragment 技術,使用 fragment 技術可以在 jsp 中實現類似 tiles 和 sitemesh 的頁面布局管理。
下面的例子說明了如何使用 fragment 實現頁面布局。
1、首先在 web-inf/tags 資料夾中建立 template.tag 檔案:
在 tag 檔案頭部申明了兩個 attribute 分別是 header 和 footer。在 標籤中呼叫了這兩個 attribute 所對應的 fragment。jsp:invoke 和 jsp:dobody 中的具體內容會被 jsp 中的內容替換。現在編寫 index.jsp。
2、建立 index.jsp 檔案
[html]view plain
copy
<
%@page
contenttype
="text/html"
pageencoding
="utf-8"
%>
<
%@ taglib
prefix
="t"
tagdir
="/web-inf/tags/"
%>
<
t:template
>
<
jsp:attribute
name
="header"
>
這裡的內容顯示在頭部。
jsp:attribute
>
<
jsp:attribute
name
="footer"
>
這裡的內容顯示在尾部。
jsp:attribute
>
<
jsp:body
>
這裡顯示正文內容:hello world!
jsp:body
>
t:template
>
jsp:attribute 標籤中的內容將會替換 template.tag 中 jsp:invoke 的內容,name 屬性對應 fragment 屬性。
如果訪問 index.jsp 頁面,可以看到顯示的內容會按照 template.tag 中設計的樣式來進行布局。
Promise的理解和使用
官方 1 1.promise物件用於非同步計算 1 2.promise表示乙個現在,將來或用不可能可用的值 理解 2 1.主要用於非同步計算 2 2.可以將非同步操作佇列化,按照期望的順序執行,返回符合預期的結果 2 3.可以在物件之間傳遞和操作promise,幫助我們處理佇列 1.同步 不同的事情...
Handler的理解和使用
一 handler簡介 handler是android給我們提供的用來更新ui user inte ce 的一套機制,也是一套資訊處理機制,我們可以通過他傳送訊息和處理訊息 為什麼要是使用handler?其在設計的時候,就封裝了一套資訊建立 傳遞和處理的機制,如果不遵守這種機制,就會丟擲異常 cal...
Python property的理解和使用
重看狗書,看到對user表定義的時候有下面兩行 property def password self raise attributeerror password is not a readable attribute password.setter def password self,passwor...