3

我正在使用其他人编写的 struts 开发一个 java web 应用程序,并且我收到有关某些文件中缺少的导入的错误,因此我查看了项目文件夹并在 jsp 文件中找到了该文件,这看起来很奇怪。因此,我将文件复制到相关包中,错误就消失了。当我再次在 Tomcat 上运行该程序时,我收到了这个错误:

org.apache.jasper.JasperException: /index.jsp(3,55) File "/WEB-INF/struts-html.tld" not found
        org.apache.jasper.compiler.DefaultErrorHandler.jspError(DefaultErrorHandler.java:41)
        org.apache.jasper.compiler.ErrorDispatcher.dispatch(ErrorDispatcher.java:407)
        org.apache.jasper.compiler.ErrorDispatcher.jspError(ErrorDispatcher.java:132)
        org.apache.jasper.compiler.TagLibraryInfoImpl.<init>(TagLibraryInfoImpl.java:166)
        org.apache.jasper.compiler.Parser.parseTaglibDirective(Parser.java:410)
        org.apache.jasper.compiler.Parser.parseDirective(Parser.java:475)
        org.apache.jasper.compiler.Parser.parseElements(Parser.java:1425)
        org.apache.jasper.compiler.Parser.parse(Parser.java:138)
        org.apache.jasper.compiler.ParserController.doParse(ParserController.java:239)
        org.apache.jasper.compiler.ParserController.parse(ParserController.java:102)
        org.apache.jasper.compiler.Compiler.generateJava(Compiler.java:197)
        org.apache.jasper.compiler.Compiler.compile(Compiler.java:372)
        org.apache.jasper.compiler.Compiler.compile(Compiler.java:352)
        org.apache.jasper.compiler.Compiler.compile(Compiler.java:339)
        org.apache.jasper.JspCompilationContext.compile(JspCompilationContext.java:594)
        org.apache.jasper.servlet.JspServletWrapper.service(JspServletWrapper.java:344)
        org.apache.jasper.servlet.JspServlet.serviceJspFile(JspServlet.java:391)
        org.apache.jasper.servlet.JspServlet.service(JspServlet.java:334)
        javax.servlet.http.HttpServlet.service(HttpServlet.java:722)

“/WEB-INF/struts-html.tld”仍然存在并且没有被更改或移动。我决定删除我移动的文件,因为没有它程序仍然可以工作,但我仍然收到错误,我不确定如何解决这个问题。

编辑:

所以我决定刷新网页,出现了一个不同的错误:

org.apache.jasper.JasperException: java.lang.ClassNotFoundException: org.apache.jsp.index_jsp
        org.apache.jasper.servlet.JspServletWrapper.getServlet(JspServletWrapper.java:168)
        org.apache.jasper.servlet.JspServletWrapper.service(JspServletWrapper.java:356)
        org.apache.jasper.servlet.JspServlet.serviceJspFile(JspServlet.java:391)
        org.apache.jasper.servlet.JspServlet.service(JspServlet.java:334)
        javax.servlet.http.HttpServlet.service(HttpServlet.java:722)


root cause 

java.lang.ClassNotFoundException: org.apache.jsp.index_jsp
        java.net.URLClassLoader$1.run(Unknown Source)
        java.security.AccessController.doPrivileged(Native Method)
        java.net.URLClassLoader.findClass(Unknown Source)
        org.apache.jasper.servlet.JasperLoader.loadClass(JasperLoader.java:132)
        org.apache.jasper.servlet.JasperLoader.loadClass(JasperLoader.java:63)
        org.apache.jasper.servlet.JspServletWrapper.getServlet(JspServletWrapper.java:162)
        org.apache.jasper.servlet.JspServletWrapper.service(JspServletWrapper.java:356)
        org.apache.jasper.servlet.JspServlet.serviceJspFile(JspServlet.java:391)
        org.apache.jasper.servlet.JspServlet.service(JspServlet.java:334)
        javax.servlet.http.HttpServlet.service(HttpServlet.java:722)
4

2 回答 2

3

tld标签库)文件及其位置在web.xml文件中指定。
如果您需要 new tldsjsp使用这些文件的文件tlds将首先在 中web.xml查找文件的信息和位置。

于 2012-06-05T13:57:39.447 回答
1

在您的 web.xml 中,您需要在欢迎页面定义之后放置 taglib 定义。它对我有用。

于 2013-12-11T11:27:23.720 回答