Ant*_*ton 5 java web.xml weblogic jstl java-ee
我试图使用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/ ,并将两个jar(standard.jar和jstl.jar)放在我的WEB-INF目录下.我还把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的映射," 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-页, "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本地-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的 ":持久性单元-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中删除那些<taglib>最终会出现如下错误:
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中手动找到这个类.