我试图使用Weblogic开始使用Java EE,并且我无法使JSTL标记工作,在最简单的代码中,我在部署应用程序时遇到以下错误:
index.jsp:1:4:没有标签库可以 找到这个URI。可能的原因 可能是URI不正确,或 解析过程中出错 .tld文件。 <%@ taglib prefix =“c” URI = “http://java.sun.com/jsp/jstl/core” %>
^ ---- ^ index.jsp:1:4:没有标签 可以使用此URI找到库。 可能的原因可能是URI 是不正确的,或者有 解析.tld期间的错误 文件。 <%@ taglib prefix =“c” URI = “http://java.sun.com/jsp/jstl/core” %>
^ ---- ^ index.jsp:2:4:没有标签 可以使用此URI找到库。 可能的原因可能是URI 是不正确的,或者有 解析.tld期间的错误 文件。 <%@ taglib prefix =“sql” URI = “http://java.sun.com/jsp/jstl/sql” %>
^ ---- ^ index.jsp:2:4:没有标签 可以使用此URI找到库。 可能的原因可能是URI 是不正确的,或者有 解析.tld期间的错误 文件。 <%@ taglib prefix =“sql” URI = “http://java.sun.com/jsp/jstl/sql” %>
我从这个网站下载了taglib文件:http://archive.apache.org/dist/jakarta/taglibs/standard/ 并在我的WEB-INF目录下放两个罐子(standard.jar和jstl.jar)。我还把arcihve中的所有tld文件放在那里。 我尝试在我的web.xml文件中引用它们并在验证后得到以下错误:
开始进行XML验证。检查 文件:/ C:/Users/Brodyaga/Documents/NetBeansProjects/Eshop1/web/WEB-INF/web.xml ... 参考实体在 “nbres:/org/netbeans/modules/j2ee/ddloaders/catalog/resources/XMLSchema.dtd”。 参考实体在 “nbres:/org/netbeans/modules/j2ee/ddloaders/catalog/resources/datatypes.dtd”。 cvc-complex-type.2.4.a:无效 内容被发现开头 元素'taglib'。之一 “{“http://java.sun.com/xml/ns/javaee":description, “http://java.sun.com/xml/ns/javaee":display-name, “http://java.sun.com/xml/ns/javaee":icon, “http://java.sun.com/xml/ns/javaee":distributable, “http://java.sun.com/xml/ns/javaee":context-param, “http://java.sun.com/xml/ns/javaee":filter, “http://java.sun.com/xml/ns/javaee":filter-mapping, “http://java.sun.com/xml/ns/javaee":listener, “http://java.sun.com/xml/ns/javaee":servlet, “http://java.sun.com/xml/ns/javaee":servlet-mapping, “http://java.sun.com/xml/ns/javaee":session-config, “http://java.sun.com/xml/ns/javaee":mime-mapping, “http://java.sun.com/xml/ns/javaee":welcome-file-list, “http://java.sun.com/xml/ns/javaee":error-page, “http://java.sun.com/xml/ns/javaee":jsp-config, “http://java.sun.com/xml/ns/javaee":security-constraint, “http://java.sun.com/xml/ns/javaee":login-config, “http://java.sun.com/xml/ns/javaee":security-role, “http://java.sun.com/xml/ns/javaee":env-entry, “http://java.sun.com/xml/ns/javaee":ejb-ref, “http://java.sun.com/xml/ns/javaee":ejb-local-ref, “http://java.sun.com/xml/ns/javaee":service-ref, “http://java.sun.com/xml/ns/javaee":resource-ref, “http://java.sun.com/xml/ns/javaee":resource-env-ref, “http://java.sun.com/xml/ns/javaee":message-destination-ref, “http://java.sun.com/xml/ns/javaee":persistence-context-ref, “http://java.sun.com/xml/ns/javaee":persistence-unit-ref, “http://java.sun.com/xml/ns/javaee":post-construct, “http://java.sun.com/xml/ns/javaee":pre-destroy, “http://java.sun.com/xml/ns/javaee":message-destination, “http://java.sun.com/xml/ns/javaee":locale-encoding-mapping-list}” 是期待。 [12] XML验证 结束。
我的web.xml如下:
<?xml version="1.0" encoding="UTF-8"?>
<web-app version="2.5" xmlns="http://java.sun.com/xml/ns/javaee" 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">
<session-config>
<session-timeout>
30
</session-timeout>
</session-config>
<welcome-file-list>
<welcome-file>index.jsp</welcome-file>
</welcome-file-list>
<taglib>
<taglib-uri>http://java.sun.com/jstl/fmt</taglib-uri>
<taglib-location>/WEB-INF/fmt.tld</taglib-location>
</taglib>
<taglib>
<taglib-uri>http://java.sun.com/jstl/fmt-rt</taglib-uri>
<taglib-location>/WEB-INF/fmt-rt.tld</taglib-location>
</taglib>
<taglib>
<taglib-uri>http://java.sun.com/jstl/core</taglib-uri>
<taglib-location>/WEB-INF/c.tld</taglib-location>
</taglib>
<taglib>
<taglib-uri>http://java.sun.com/jstl/core-rt</taglib-uri>
<taglib-location>/WEB-INF/c-rt.tld</taglib-location>
</taglib>
<taglib>
<taglib-uri>http://java.sun.com/jstl/sql</taglib-uri>
<taglib-location>/WEB-INF/sql.tld</taglib-location>
</taglib>
<taglib>
<taglib-uri>http://java.sun.com/jstl/sql-rt</taglib-uri>
<taglib-location>/WEB-INF/sql-rt.tld</taglib-location>
</taglib>
<taglib>
<taglib-uri>http://java.sun.com/jstl/x</taglib-uri>
<taglib-location>/WEB-INF/x.tld</taglib-location>
</taglib>
<taglib>
<taglib-uri>http://java.sun.com/jstl/x-rt</taglib-uri>
<taglib-location>/WEB-INF/x-rt.tld</taglib-location>
</taglib>
</web-app>
我相信在web.xml开头指定的xml架构不允许taglib标签,但我不知道我应该使用什么架构。
我非常感谢为weblogic添加jstl支持的一步一步的教程。提前谢谢。
更新 从web.xml中删除那些&lt; taglib&gt;最终会出现以下错误:
index.jsp:18:14:标记处理程序类 没找到 “org.apache.taglibs.standard.tag.rt.core.ForEachTag”。
并且通过c.tld文件的内容明确表示weblogic理解forEach对应于org.apache.taglibs.standard.tag.rt.core.ForEachTag,但无法找到该类。但是我可以在standard.jar中手动找到这个类。
答案 0 :(得分:5)
您必须在WEB-INF / lib文件夹中包含jstl.jar和standard.jar,而不是在WEB-INF文件夹中。我想这可以解决这个问题。
答案 1 :(得分:4)
在weblogic.xml中添加library-ref:
<?xml version="1.0" encoding="UTF-8"?> <wls:weblogic-web-app xmlns:wls="http://xmlns.oracle.com/weblogic/weblogic-web-app" 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/ejb-jar_3_0.xsd http://xmlns.oracle.com/weblogic/weblogic-web-app http://xmlns.oracle.com/weblogic/weblogic-web-app/1.2/weblogic-web-app.xsd"> <wls:library-ref> <wls:library-name>jstl</wls:library-name> <wls:specification-version>1.2</wls:specification-version> <wls:exact-match>false</wls:exact-match> </wls:library-ref> </wls:weblogic-web-app>
默认情况下,在WebLogic中部署了jstl库,因此不必担心这一点。