jsp參考(三) 指令元素[directive]
<%@ attribute %>說明
這個指令只能用於標籤檔案中。它聲明了標籤檔案所支援的屬性。
文法
<%@ attribute name="attrName" [description="description"]
[required="true|false"] [fragment="true|false" | [type="attrDataType"]
[rtexprvalue="true|false"]] %>
屬性
名稱 預設值 描述
description 無 對屬性的描述,可以通過網頁設計工具提供給網頁設計人員
fragment false true時表示屬性為一個jsp程式碼片段,false時轉換為type屬性所指定的類型
name 無 屬性名稱
required false 如果該屬性是必須的,則為true
rtexdprvalue true 如果屬性必須作為一個靜態文本值提供,為false。如果值為true,表示屬性值可以由EL或java運算式提供
type String 屬性資料類型,不支援基本類型
備忘
使用fragment屬性時,就不能再使用rtexprvalue和type屬性。對於一個片段,總能接受運行時運算式值,而且類型固定為javax.servlet.jsp.tagext.JspFragment。
樣本
<%@ attribute name="date" type="java.util.Date" %>
<%@ attribute name="pattern" fragment="true" %><%@ include %>說明
包含一個靜態檔案,將其內容與所包含的頁面合并,其後再將結合的結果轉換為一個頁面實作類別。
文法
<%@ indlude file="pageOrContextRelativePath" %>
屬性
名稱 預設值 描述
file 無 所包含檔案的頁面相對URI路徑或上下文相對路徑
備忘
一個頁面可以有多個Include指令。包含頁面和所有被包含的頁面加在一起構成了所謂的JSP編譯單元。
樣本
<%@ include file="header.html" %>
<%@ page %>說明
這個指令只能用於JSP頁面中。它定義了依賴於頁面的屬性,如指令碼語言、錯誤頁面和緩衝需求等。
文法
<%@ page [autoFlush="true|false"] [buffer="8kb|NNkb|none"]
[contentType="mimeType"] [errorPage="pageOrContextRelativePath"]
[extends="className"] [import="packageList"] [info="info"]
[isELIgnored="true|false"] [isErrorPage="true|false"]
[isThreadSafe="true|false"] [language="java|language"]
[pageEncoding="encoding"] [session="true|false"] %>
屬性
名稱 預設值 描述
autoFlush true 是否自動重新整理輸出,如果為false,緩衝區滿時拋出異常
buffer 8kb 指定頁面緩衝區大小
contentType text/html或text/xml 頁面所產生響應的MIME類型,還可能包括響應字元集。對於JSP頁面,預設值為text/html;對應JSP Document,預設值為text/xml
errorPage 無 頁面代碼拋出異常時,要跳轉的目標頁面
extends 無 JSP頁面的編譯單元的基類,必須實現為JspPage或HttpJspPage介面
import 無 頁面匯入的java包,唯一可以重複的屬性
info 無 頁面描述文本
isELIgnored false 是否忽略EL運算式
isThreadSafe true 頁面是否可以為並行的請求提供服務
language java 頁面指令碼的語言,目前之支援java
pageEncoding 見描述 用於JSP頁面的編碼。常規頁面預設為ISO-8859-1,對於JSP Document文檔,預設為UTF-8
session true 是否在頁面啟用使用者會話
備忘
編譯模組可以有多個page指令,但所有的import和pageEncoding屬性都會被合并。對於編譯單元內的檔案,只能有一個page指令。
樣本
<%@ page language="java" contextType="text/html;charset=GB2312" %>
<%@ page import="java.util.*,java.text.*" %>
<%@ page import="java.sql.Date" %>
<%@ tag %>說明
只能在Tag File檔案中使用,定義了檔案自身的屬性,另外還定義了相應自訂標籤的屬性。
文法
<%@ tag [body-content="empty|scriptless|tagdependent"]
[description="description"] [display-name="displayName"]
[dynamic-attributes="attrCollVar"] [example="example"]
[import="packageList"] [isELIgnored="true|false"]
[language="java"] [large-icon="largeIconPath"]
[pageEncoding="encoding"] [small-icon="smallIconPath"] %>
屬性
名稱 預設值 描述
body-content scriptless 定義動作體類型
description 無 文本描述資訊
display-name 無 IDE環境顯示的名稱
dynamic-attributes 無 指定用於儲存未聲明屬性值的變數,為一Map,鍵為屬性名稱,值為屬性值
example 無 展示如何使用標籤的例子
import 無 頁面匯入的java包,唯一可以重複的屬性
isELIgnored false 是否忽略EL運算式
language java 頁面指令碼的語言,目前之支援java
lareg-icon 無 IDE環境下使用的大表徵圖(32*32)的路徑
pageEncoding ISO-8859-1 用於標籤檔案的編碼
small-icon 無 IDE環境下使用的小表徵圖(16*16)的路徑
備忘
對於JSP2.0容器,isELIgnored的預設值為false,而對於早期JSP容器,該值為true。
樣本
<%@ tag body-content="empty" dynamic-attributes="dynAttrs"%>
<%@ taglib %>說明
聲明一個在頁面中使用的標籤庫
文法
<%@ taglib prefix="prefix" [uri="taglibURI" | tagdir="contextRelatvePath"] %>
屬性
名稱 預設值 描述
prefix 無 指定自訂標籤庫的首碼
uri 無 可以是在庫TLD中或應用web.xml檔案中定義的庫的符號,也可以是庫TLD檔案或jar檔案的頁面相對URI路徑或上下文相對URI路徑
tagdir 無 包含標誌檔案的目錄的上下文相對路徑,以/WEB-INF/tags開頭
備忘
可以在jsp頁面和tag file頁面使用。
樣本
<%@ taglib prefix="ora" uri="orataglib"%>
<%@ taglib prefix="c" uri="http://java.sun.com/jstl/core" %>
<%@ page prefix="mylib" tagdir="/WEB-INF/tags/mylib" %>
<%@ variable %>說明
只能在Tag File中使用,聲明了標記檔案為頁面所提供的變數。
文法
<%@ variable name-given="attrAndVarName" | name-from-attribute="attrName"
alias="varName" [declare="true|false"] [description="description"]
[scope="AT_END|AT_BEGIN|NESTED"] [variable-class="varType"] %>
屬性
名稱 預設值 描述
name-given 無 標記檔案用於提供其建立值的變數的名字
name-from-attribute 無 指定建立的變數的名字由屬性指定
alias 無 標記檔案用於儲存其所建立值的局部頁面範圍變數的名字。容器將此局部變數的值複製到調用頁面的一個頁面範圍變數中
declare true 指定用於儲存未聲明屬性值的變數,為一Map,鍵為屬性名稱,值為屬性值
description 無 描述
scope NESTED 匯入變數的範圍
variable-class String 驗證類的全路徑
備忘
name-from-attribute屬性必須和alias共同使用,但是不能和name-given一起出現。
樣本
<%@ variable name-from-attribute="var" alias="current"
Variable-class="java.util.Date" scope="AT_END"%>
<%@ attribute name="var" required="true" rtexprvalue="false"%>