JSP學(xué)習(xí)之四:JSP指令
CoffeeTree 2009-1-5
一、指令基礎(chǔ)
a) 指令的格式:<%@ 指令名 [….一個或多個屬性….] %>;
b) 指令的作用:告訴容器在解釋JSP時的一些約定;
c) 可用的JSP指令
i. page指令;
ii. taglib指令
iii. include指令
d) JSP指令的處理(注意各個動作所發(fā)生的階段)
二、page指令
告訴容器翻譯階段如何處理JSP文件。
1. language屬性 :<%@ page language=”java” %> 此為默認;
2. extends屬性 :使用超類,基本不用;
3. import屬性 :<%@ page import=”java.util.*” %> ;
4. session屬性 :true | false ;
5. info屬性 :指定頁面信息,基本不用;
6. isELIgnored屬性 :true | false ;
7. isErrorPage屬性 :true | false ;
8. errorPage屬性 :<%@ page errorPage=”error.jsp” %> ;
9. contentType屬性 :text/html | text/xml ;
三、taglib指令
taglib指令的工作流程在《 JSP學(xué)習(xí)之三:EL & JSTL(二) 》中已經(jīng)描述;關(guān)鍵字:taglib映射,TLD ;
1. uri屬性
taglib指令告訴容器此JSP將使用與此uri相關(guān)聯(lián)的標記庫。
2. tagdir屬性
指定標記庫具體目錄。(必須為/WEB-INF/tags目錄或子目錄下)
3. prefix屬性
指定一個前綴。
隱式包含介紹:
如果你開發(fā)了一個項目,每一個JSP都用到了10個不同的標記庫,在每個JSP前面都指定10個taglib指令會很麻煩,此時隱式包含可以方便的解決此問題,其處理方法類似于C語言中引入一個.h文件。
WEB.xml添加:
<jsp-config>
<jsp-property-group>
<uri-pattern> index.jsp</uri-pattern>
<include-preclude> /WEB-INF/jspf/pre.jspf</include-preclude>
</jsp-property-group>
</jsp-config>
/WEB-INF/jspf/pre.jspf:
<%@ taglib prefix=”c” uri=http://java.sun.com/jsp/jstl/core %>
<%@ taglib prefix=”fmt” uri=http://java.sun.com/jsp/jstl/format %>
四、include指令
include指令告訴容器,在翻譯階段把其他文件的內(nèi)容與當前JSP合并。
1. 所包含的所有JSP代碼都不會被執(zhí)行,甚至不會被編譯。
2. 首先合并文件,然后合并后的整個輸出作為一個單元得到翻譯。
3. 如果所包含的文件有所改動,容器沒有一般的方法來知道這一點,只能重新編譯整個翻譯單元。
<jsp : include >動作在請求時發(fā)生,可以克服以上限制。

