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

查了一晚上  刚开始觉得最靠谱的还是这个说法:

1.下载jakarta-taglibs-standard-1.1.2.zip(在Weblogic中必须下载1.0版 http://jakarta.apache.org/site/downloads/downloads_taglibs-standard-1.0.cgi) 
2.解压后,将standard.jar和jstl.jar文件拷贝到WEB-INFlib 
3.将jakarta-taglibs-standard-1.1.1tld下的tld类型文件拷到"WEB-INFtlds"下(1.1是15个文件,1.0是8个) 
4.在WEB-INF下建立web.xml文件:(以下<taglib>定义是针对1.0的) 
<?xml version="1.0" encoding="gbk"?> 

<web-app 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" 
version="2.4"> 

<taglib> 
<taglib-uri> http://java.sun.com/jstl/fmt</taglib-uri> 
<taglib-location>/WEB-INF/tlds/fmt.tld</taglib-location> 
</taglib> 

<taglib> 
<taglib-uri> http://java.sun.com/jstl/fmt-rt</taglib-uri> 
<taglib-location>/WEB-INF/tlds/fmt-rt.tld</taglib-location> 
</taglib> 

<taglib> 
<taglib-uri> http://java.sun.com/jstl/core</taglib-uri> 
<taglib-location>/WEB-INF/tlds/c.tld</taglib-location> 
</taglib> 

<taglib> 
<taglib-uri> http://java.sun.com/jstl/core-rt</taglib-uri> 
<taglib-location>/WEB-INF/tlds/c-rt.tld</taglib-location> 
</taglib> 

<taglib> 
<taglib-uri> http://java.sun.com/jstl/sql</taglib-uri> 
<taglib-location>/WEB-INF/tlds/sql.tld</taglib-location> 
</taglib> 

<taglib> 
<taglib-uri> http://java.sun.com/jstl/sql-rt</taglib-uri> 
<taglib-location>/WEB-INF/tlds/sql-rt.tld</taglib-location> 
</taglib> 

<taglib> 
<taglib-uri> http://java.sun.com/jstl/x</taglib-uri> 
<taglib-location>/WEB-INF/tlds/x.tld</taglib-location> 
</taglib> 

<taglib> 
<taglib-uri> http://java.sun.com/jstl/x-rt</taglib-uri> 
<taglib-location>/WEB-INF/tlds/x-rt.tld</taglib-location> 
</taglib> 
</web-app> 

建立一个名为test.jsp文件 
<%@ page isELIgnored="false" %>Tomcat中必须加这行,因为,默认jsp是不支持EL的.Weblogic中不能加,加了会出错。 
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0 Transitional//EN"> 
<%@ page contentType="text/html;charset=GB2312" %> 
<%@ taglib prefix="c" uri=" http://java.sun.com/jsp/jstl/core"%> 
<html> 
<head> 
<title>测试你的第一个使用到JSTL 的网页</title> 
</head> 
<body> 
<c:out value="欢迎测试你的第一个使用到JSTL 的网页"/> 
</br>你使用的浏览器是:</br> 
<c:out value="${header['User-Agent']}"/> 
<c:set var="a" value="David O'Davies" /> 
<c:out value="David O'Davies" escapeXml="true"/> 
</body> 
</html>

  下面附上  下载各个版本jakarta-taglibs-standard的链接;http://archive.apache.org/dist/jakarta/taglibs/standard/binaries/

结果按照上面部署以后,并没有得到自己想要的结果。

最后再这篇文章中找到自己想要的结果:

出现该问题的原因有如下可能:

1、 web项目出现如上问题,据查是版本问题:

    JSTL 1.0 的声明是:

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

    JSTL1.1 的声明是:

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

2、输入的"http://java.sun.com/jsp/jst1/core"中的jstl中的"l"不是数字"1"而是小写字母"l"(笔者轻身体会)

3、缺少 jstl.jar和standard.jar包,这个两个文件获取的链接为:http://archive.apache.org/dist/jakarta/taglibs/standard/binaries/



原文地址:https://www.cnblogs.com/sunyubin/p/9879634.html