佳木斯湛栽影视文化发展公司

主頁 > 知識庫 > JSP自定義標簽Taglib實現(xiàn)過程重點總結(jié)

JSP自定義標簽Taglib實現(xiàn)過程重點總結(jié)

熱門標簽:Mysql連接數(shù)設(shè)置 阿里云 銀行業(yè)務(wù) 電子圍欄 科大訊飛語音識別系統(tǒng) 服務(wù)器配置 Linux服務(wù)器 團購網(wǎng)站

Taglib指令介紹

Taglib指令,其實就是定義一個標簽庫以及自定義標簽的前綴。

比如struts中支持的標簽庫,html標簽庫、bean標簽庫、logic標簽庫。

其中的具體的實現(xiàn)方式,我們不過多介紹,我們給大家從宏觀的角度以及解決其中的疑難點,后面會大家介紹相應(yīng)的學習資料。

除了struts的標簽庫,我們常見還有jstl標簽庫。

這樣在界面jsp中引入其中的標簽庫或者標簽庫文件,然后才可以正常使用其中定義的標簽。

復制代碼 代碼如下:

%@ taglib prefix ="bean" uri= "http://struts.apache.org/tags-bean" %>
%@ taglib prefix ="logic" uri= "http://struts.apache.org/tags-logic" %>
%@ taglib prefix ="html" uri= "http://struts.apache.org/tags-html" %>
%@ taglib prefix ="c" uri="http://java.sun.com/jsp/jstl/core" %>

自定義標簽庫優(yōu)點

在jsp1.1版本中就增加了自定義標簽庫。自定義標簽庫可以看作一種優(yōu)秀的組件。在自定義標簽庫中,我們可以把復雜的業(yè)務(wù)邏輯功能都封裝在標簽庫中了。而不必在jsp中寫具體的代碼。這樣,jsp代碼與java編碼能力不必強制耦合在一起。

提到j(luò)sp版本的問題,我們首先應(yīng)該確定我們jsp版本,因為版本不同,標簽庫文件引入的頭文件不同,并且其中的標簽也有差異。

如何查看我們使用的jsp版本或servlet版本

打開tomcat下lib文件下的jsp-api.jar下的/META-INF/MANIFEST.MF文件,查看jsp版本。

因為我已經(jīng)導入eclispe中,圖如下:


 

lib文件下的servlet-api.jar下的/META-INF/MANIFEST.MF文件,查看servlet版本

因為我已經(jīng)導入eclispe中,圖如下:

Jsp2新增的特性

上述圖中jsp版本是2.2,servlet版本是3.0。目前servlet3.0對應(yīng)的是jsp2.2規(guī)范,但是一般情況下,我們把jsp2.0與jsp2.2都統(tǒng)稱為jsp2.

如果我們使用jsp2,則web.xml使用的是servlet2.4以上的版本。那我們看一下web.xml對應(yīng)的頭文件:

新增的特性是:

復制代碼 代碼如下:

web-app version= "4"
xmlns="http://javasuncom/xml/ns/j2ee"
xmlns:xsi="http://wwwworg/2001/XMLSchema-instance"
xsi:schemaLocation="http://javasuncom/xml/ns/j2ee
http://javasuncom/xml/ns/j2ee/web-app_2_xsd" >
/web-app>

1.直接配置jsp的屬性

比如在web.xml中配置:

復制代碼 代碼如下:

jsp-config>
jsp-property-group >
!--  對那些文件進行應(yīng)用 -->
url-pattern >* jsp/ url-pattern>
!-- 忽略el表達式 -->
el-ignored >true /el-ignored >
/jsp-property-group >
/ jsp-config>

當然還有很多功能:

2.表達式語言

表達式語言,就是使用el表達式。

3.使用TagFile

使用TagFile可以代替標簽處理類和庫文件。

jsp1和jsp2的標簽庫文件中的頭文件

jsp1的標簽文件的頭文件:

復制代碼 代碼如下:

?xml version="0" encoding= "UTF-8"?>
!DOCTYPE taglib
PUBLIC "-//Sun Microsystems, Inc//DTD JSP Tag Library 1//EN"
"http://javasuncom/j2ee/dtds/web-jsptaglibrary_1_dtd">

根據(jù)后綴dtd,知道這是引入dtd文件,但是這具體表示什么意思呢?

若是引入dtd文件,則使用DOCTYPE 這種形式。但是 PUBLIC "-//Sun Microsystems, Inc.//DTD JSP Tag Library 1.1//EN"是什么意思呢?

根據(jù)xml中,如何引入dtd文件?引入dtd文件有以下形式:

1.在xml文檔內(nèi)部引入dtd

復制代碼 代碼如下:

?xml version="0"?>
!DOCTYPE note [
!ELEMENT note (to,from,heading,body)>
!ELEMENT to (#PCDATA)>
!ELEMENT from (#PCDATA)>
!ELEMENT heading (#PCDATA)>
!ELEMENT body (#PCDATA)>
]>
note>
to>George/to>
from>John/from>
heading>Reminder/heading>
body>Don't forget the meeting!/body>
/note>

2.在xml文檔引入外部dtd文件
復制代碼 代碼如下:

?xml version="0"?>
!DOCTYPE note SYSTEM "notedtd">
note>
to>George/to>
from>John/from>
heading>Reminder/heading>
body>Don't forget the meeting!/body>
/note>

!ELEMENT note (to,from,heading,body)>
!ELEMENT to (#PCDATA)>
!ELEMENT from (#PCDATA)>
!ELEMENT heading (#PCDATA)>
!ELEMENT body (#PCDATA)>

在文檔類型聲明時,用管間質(zhì)SYSTEM或PUBLIC來指出外部DTD文件的位置

用system關(guān)鍵字,如下:!DOCTYPE 根元素的名字 SYSTEM "外部DTD文件的URI">

用public如下:!DOCTYPE 根元素的名字 PUBLIC "DTD的名字" "外部DTD文件的URI">

一般用system關(guān)鍵字來形容是私有的dtd文件。

而public關(guān)鍵字來形容的是公共的dtd文件。public形式,首先默認的根據(jù)dtd的名字來尋找dtd文件,找不到,則會根據(jù)dtd文件的uri尋找文件。

jsp2中標簽文件的頭文件如下:其中是使用的schema形式而不是dtd文件。

復制代碼 代碼如下:

?xml version="0" encoding="UTF-8" ?>
taglib xmlns="http://javasuncom/xml/ns/j2ee"
xmlns:xsi="http://wwwworg/2001/XMLSchema-instance"
xsi:schemaLocation="http://javasuncom/xml/ns/j2ee http://javasuncom/xml/ns/j2ee/web-jsptaglibrary_2_xsd"
version="0">/taglib>

標簽庫文件位置

把tld文件放在WebContent目錄下或其子目錄下。這樣的話,web.xml不用配置其位置即可。tomcat直接讀取webcontent下的tld文件。

您可能感興趣的文章:
  • jsp簡單自定義標簽的forEach遍歷及轉(zhuǎn)義字符示例
  • JSP自定義標簽獲取用戶IP地址的方法
  • jsp自定義標簽技術(shù)(實現(xiàn)原理與代碼以及平臺搭建步驟)
  • 基于JSP 自定義標簽使用實例介紹
  • JSP 自定義標簽之一 簡單實例
  • JSP自定義標簽rtexprvalue屬性用法實例分析
  • JSP自定義標簽-標簽屬性_動力節(jié)點Java學院整理

標簽:萍鄉(xiāng) 蚌埠 衢州 江蘇 棗莊 衡水 大理 廣元

巨人網(wǎng)絡(luò)通訊聲明:本文標題《JSP自定義標簽Taglib實現(xiàn)過程重點總結(jié)》,本文關(guān)鍵詞  ;如發(fā)現(xiàn)本文內(nèi)容存在版權(quán)問題,煩請?zhí)峁┫嚓P(guān)信息告之我們,我們將及時溝通與處理。本站內(nèi)容系統(tǒng)采集于網(wǎng)絡(luò),涉及言論、版權(quán)與本站無關(guān)。
  • 相關(guān)文章
  • 收縮
    • 微信客服
    • 微信二維碼
    • 電話咨詢

    • 400-1100-266
    盐亭县| 眉山市| 宝丰县| 磐石市| 上犹县| 寻甸| 永年县| 石林| 昌宁县| 郑州市| 家居| 犍为县| 泰兴市| 阿坝县| 鹿泉市| 延津县| 靖边县| 辉县市| 桐庐县| 云林县| 庆元县| 新蔡县| 凯里市| 东乌珠穆沁旗| 垫江县| 五原县| 黄冈市| 灵山县| 浠水县| 土默特右旗| 宁明县| 武夷山市| 宁陵县| 禹州市| 樟树市| 陆良县| 独山县| 固阳县| 龙胜| 共和县| 兖州市|