JSP自定義標簽Taglib實現過程重點總結_JSP教程

      編輯Tag賺U幣

      推薦:jsp include引用非本級目錄網頁實現代碼
      include的出現方便了文件之間的引用,降低了開發難度.它的常用法是引用同級目錄,本文主要介紹引用非本級目錄網頁,如果沒有遇到這樣情況下引用的朋友可以參考下,或許本文對你有所幫助

      Taglib指令介紹

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

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

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

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

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

      復制代碼 代碼如下:www.wf0088.com

      <%@ 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" %>

      自定義標簽庫優點

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

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

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

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

      因為我已經導入eclispe中,圖如下:


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

      因為我已經導入eclispe中,圖如下:

      Jsp2新增的特性

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

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

      新增的特性是:

      復制代碼 代碼如下:www.wf0088.com

      <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中配置:

      復制代碼 代碼如下:www.wf0088.com

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

      當然還有很多功能:

      2.表達式語言

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

      3.使用TagFile

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

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

      jsp1的標簽文件的頭文件:

      復制代碼 代碼如下:www.wf0088.com

      <?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">

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

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

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

      1.在xml文檔內部引入dtd

      復制代碼 代碼如下:www.wf0088.com

      <?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文件
      復制代碼 代碼如下:www.wf0088.com

      <?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)>

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

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

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

      一般用system關鍵字來形容是私有的dtd文件。

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

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

      復制代碼 代碼如下:www.wf0088.com

      <?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+DWR實現三級聯動下拉選擇菜單實現技巧
      今天我做了一個dwr+jsp做的例子:純JSP+DWR實現三級聯動下拉選擇菜單,感興趣的朋友可以參考下,或許本文對你有所幫助

      來源:模板無憂//所屬分類:JSP教程/更新時間:2013-04-22
      相關JSP教程