1. 程式人生 > >【轉】關於web.xml中不能識別taglib的問題

【轉】關於web.xml中不能識別taglib的問題

關於web.x關於web.xml中不能識別<taglib>的問題
關於eclips中不能識別<taglib>的問題
org.apache.jasper.JasperException: The absolute uri: http://java.sun.com/jstl/core cannot be resolved in either web.xml or the jar files deployed with this application

myeclips5的標籤使用,再web.xnl中不用宣告<taglib>標籤就可以直接使用標籤,這好像是2.4版本的特點。
但是,再jsp頁面中
必須加上:<%@ taglib uri="http://java.sun.com/jsp/jstl/core

" prefix="c"%>,
如果不加,標籤被忽視,顯示空白。
如果寫為:<%@ taglib uri="http://java.sun.com/jsf/core" prefix="c"%>,則是會報錯!!!!!
這是為什麼呢?
原因是這樣的的!!!
如果使用標籤,jstl.jar+standard.jar應該放到工程的lib目錄下。
解壓縮standard.jar然後到裡面的META-INF裡面找到標籤描述檔案(很多.tld檔案),然後開啟tld檔案,看看裡面不同的uri就可以了。
我解開c.tld,看到這句話<uri>http://java.sun.com/jsp/jstl/core</uri>,這就是原因!!!!!

myeclips是沒有再web.xml中自動新增<taglib>標籤的,這不是myeclips的bug,可見myecips還是很聰明的,我們要相信它。
如果*.tld檔案不在WEB-INF下,就需要寫了,格式為:
<jsp-config>
   <taglib>
    <taglib-uri>http://java.sun.com/jsp/jstl/core</taglib-uri>
    <taglib-location>token</taglib-location>
   </taglib>
</jsp-config>


模板如下:

=========================index.jsp=============================

<%@ page language="java" pageEncoding="GB18030"%>
<%@ taglib uri="http://java.sun.com/jsp/jstl/core" prefix="c"%>

<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">
<html>
<head>
   <title>My JSF 'index.jsp' starting page</title>

   <!--
<link rel="stylesheet" type="text/css" href="styles.css">
-->

</head>

<body>
   <c:forEach var="i" begin="1" end="30" step="1">
    <c:out value="${i}" />
    <br />
   </c:forEach>
</body>
</html>

=========================web.xml=============================


-------------------------------------------------------------


我寫了一個自定義的標記庫,在web.xml中要寫一段<taglib>……</taglib>。
語法和格式都是正確的,在Tomcat中執行都正常,我是用MyEclipse來開發的,其實web.xml可以有taglib這個元素的,但是MyEclipse不認識……總是有個紅色的叉子看著很不爽啊,怎麼解決這個問題呢?
響應者 1:
你的jar包沒有被載入進來,你把報的什麼錯貼出來
響應者 2:
你載入的是什麼WEB.xml,頭是不是這種的???
<?xml version="1.0" encoding="UTF-8"?>
<web-app version="2.4"
xmlns="http://JAVA.sun.com/xml/ns/j2ee"
xmlns:xsi="http://www.w3.org/2001/xmlSchema-instance"
xsi:schemaLocation="http://JAVA.sun.com/xml/ns/j2ee
http://JAVA.sun.com/xml/ns/j2ee/web-app_2_4.xsd">
響應者 3:
是的話,要載入標籤庫是這樣的
<jsp-config>
<taglib>
<taglib-uri>XXXXX</taglib-uri>
<taglib-location>XXXXXXX</taglib-location>
</taglib>
</jsp-config>
響應者 4:
謝謝Asclepios()

--------------------------------------------------------------------------------------------------------------------------
在tomcat中配置自定義標籤的時候,會遇到一個問題

web.xml中,有兩個版本的DTD認證,一個是java1.2版本的,一個是2.0版本的,所以就形成了不同版本的時候作出的配置不一樣

是2.0版本的

所以在web.xml中新增自己的taglib的時候要包含在<jsp-config></jsp-config>中間才行.

<jsp-config>
<taglib>
      <taglib-uri>/date</taglib-uri>
      <taglib-location>/WEB-INF/date.tld</taglib-location>
</taglib>
</jsp-config

---------------------------------------------------------------------------------------------------------------------------
<jsp-config>標籤使用詳解
<jsp-config> 包括<taglib> 和<jsp-property-group> 兩個子元素。
    
     其中<taglib>元素在JSP 1.2時就已經存在;而<jsp-property-group>是JSP 2.0 新增的元素。
     <jsp-property-group>元素主要有八個子元素,它們分別為:
    
     1.<description>:設定的說明;
     2.<display-name>:設定名稱;
     3.<url-pattern>:設定值所影響的範圍,如:/CH2 或 /*.jsp;
     4.<el-ignored>:若為true,表示不支援EL 語法;
     5.<scripting-invalid>:若為true,表示不支援<% scripting %>語法;
     6.<page-encoding>:設定JSP 網頁的編碼;
     7.<include-prelude>:設定JSP 網頁的擡頭,副檔名為.jspf;
     8.<include-coda>:設定JSP 網頁的結尾,副檔名為.jspf。


一個簡單的<jsp-config>元素完整配置:

<jsp-config>
     <taglib>
         <taglib-uri>Taglib</taglib-uri>
         <taglib-location>/WEB-INF/tlds/MyTaglib.tld</taglib-location>
     </taglib>
     <jsp-property-group>
         <description>Special property group for JSP Configuration JSP example.</description>
         <display-name>JSPConfiguration</display-name>
         <url-pattern>/jsp/* </url-pattern>
         <el-ignored>true</el-ignored>
         <page-encoding>GB2312</page-encoding>
         <scripting-invalid>true</scripting-invalid>
         <include-prelude>/include/prelude.jspf</include-prelude>
         <include-coda>/include/coda.jspf</include-coda>
     </jsp-property-group>
</jsp-config>

ml中不能識別taglib的問題