Can not find the tag library descriptor for "http://java.sun.com/jsp/jstl/core"


問題描述

今天寫jsp的時候想用JSTL的一些標簽,但是引用的時候碰到這個問題。

 

解決辦法

一.看是否引用jstl.jar包,如果沒有,則可以下載相應版本的jstr.jar包,並放入WEB-INF的lib文件夾下

    

 

二.應該下載什么版本的jstl包?

(一)JSTL各版本下載

(1)JSTL1.0(包含2個jar文件:jstl.jar和standard.jar。這兩個jar文件都存在於Standard1.0.x的發布版本中。)

下載地址:http://archive.apache.org/dist/jakarta/taglibs/standard-1.0/binaries/

最新版本是:jakarta-taglibs-standard-1.0.3.zip。解壓后從lib文件夾中找到這個兩個jar包

(2)JSTL1.1(也包含2個jar文件:jstl.jar和standard.jar。這兩個jar文件都存在於Standard1.1.x的發布版本中。)

下載地址:http://archive.apache.org/dist/jakarta/taglibs/standard/binaries/

最新版本是:jakarta-taglibs-standard-1.1.2.zip。解壓后從lib文件夾中找到這個兩個jar包

(3)JSTL1.2(只包含1個jar文件:jstl-1.2.jar)

    -- JSTL 1.2 is part of the Java EE 5 platform.

下載地址:http://jstl.java.net/

(二)JSTL各版本差異

1. JSTL1.0(不支持EL)、JSTL 1.1和JSTL 1.2支持的servlet,jsp規范都不相同,支持相應規范的tomcat的版本也有要求的。具體如下。

 web.xml中要申明相應的servlet版本。

web.xml的位置:

 

JSTL1.2需要servlet2.5

<web-app xmlns="http://java.sun.com/xml/ns/javaee"

version="2.5"

xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"

xsi:schemaLocation="http://java.sun.com/xml/ns/javaee http://java.sun.com/xml/ns/javaee/web-app_2_5.xsd">

 

JSTL1.1和JSP2.0需要servlet2.4

<web-app xmlns="http://java.sun.com/xml/ns/j2ee" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" version="2.4 " xsi:schemaLocation="http://java.sun.com/xml/ns/j2ee   http://java.sun.com/xml/ns/j2ee/web-app_2_4 .xsd">

 

JSTL1.0和JSP1.2需要servlet2.3

<web-app xmlns="http://java.sun.com/xml/ns/j2ee" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" version="2.3 " xsi:schemaLocation="http://java.sun.com/xml/ns/j2ee   http://java.sun.com/xml/ns/j2ee/web-app_2_3 .xsd">

 

2. JSTL1.0和JSTL1.1的uri是不一樣的,但是他們的tld文件同時存在於同一個standard.jar中。解壓縮下載的standard.jar,你會在/META-INF/下發現有一個c-1_0.tld,還有一個c.tld。其中c-1_0.tld是JSTL1.0的core標簽庫的tld文件,c.tld是JSTL1.1的core標簽庫的tld文件。JSTL1.1與JSTL1.2的uri是一樣的。

 JSTL1.0的使用方法為:

<%@ taglib uri="http://java.sun.com/jstl/core" prefix="c" %>

JSTL1.1的使用方法為:

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

JSTL1.2的使用方法為

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

 

開啟EL:只有 servlet2.4 是默認支持 el表達式的。

其他的都要 JSP頁面開頭加入: <%@ page isELIgnored="false"%>servlet2.5默認是禁用el的,所以會出現${}現象,加入上述代碼開啟EL

  

參考文檔

  http://janedoneway.iteye.com/blog/1245949


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM