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

來源:互聯網
上載者:User
關於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>,這就是原因!!!!!

總之:
完全可以:
<%@ taglib uri="http://java.sun.com/jsp/jstl/core" prefix="c"%>
不可以:
<%@ taglib uri="http://java.sun.com/jsf/core" prefix="c"%>

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=============================

<?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">
</web-app>

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

我寫了一個自訂的標記庫,在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版本的,所以就形成了不同版本的時候作出的配置不一樣

xsi:schemaLocation="http://java.sun.com/xml/ns/j2ee http://java.sun.com/xml/ns/j2ee/web-app_2_4.xsd

是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的問題

聯繫我們

該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在5個工作日內處理。

如果您發現本社區中有涉嫌抄襲的內容,歡迎發送郵件至: info-contact@alibabacloud.com 進行舉報並提供相關證據,工作人員會在 5 個工作天內聯絡您,一經查實,本站將立刻刪除涉嫌侵權內容。

A Free Trial That Lets You Build Big!

Start building with 50+ products and up to 12 months usage for Elastic Compute Service

  • Sales Support

    1 on 1 presale consultation

  • After-Sales Support

    24/7 Technical Support 6 Free Tickets per Quarter Faster Response

  • Alibaba Cloud offers highly flexible support services tailored to meet your exact needs.