org.apache.jasper.JasperException: File "/WEB-INF/struts-html.tld" not found
org.apache.jasper.compiler.DefaultErrorHandler.jspError(DefaultErrorHandler.java:51)
org.apache.jasper.compiler.ErrorDispatcher.dispatch(ErrorDispatcher.java:409)
org.apache.jasper.compiler.ErrorDispatcher.jspError(ErrorDispatcher.java:116)
org.apache.jasper.compiler.TagLibraryInfoImpl.<init>(TagLibraryInfoImpl.java:160)
org.apache.jasper.compiler.Parser.parseTaglibDirective(Parser.java:431)
org.apache.jasper.compiler.Parser.parseDirective(Parser.java:494)
org.apache.jasper.compiler.Parser.parseElements(Parser.java:1444)
org.apache.jasper.compiler.Parser.parse(Parser.java:138)
org.apache.jasper.compiler.ParserController.doParse(ParserController.java:216)
org.apache.jasper.compiler.ParserController.parse(ParserController.java:103)
org.apache.jasper.compiler.Compiler.generateJava(Compiler.java:154)
org.apache.jasper.compiler.Compiler.compile(Compiler.java:315)
org.apache.jasper.compiler.Compiler.compile(Compiler.java:295)
org.apache.jasper.compiler.Compiler.compile(Compiler.java:282)
org.apache.jasper.JspCompilationContext.compile(JspCompilationContext.java:586)
org.apache.jasper.servlet.JspServletWrapper.service(JspServletWrapper.java:317)
org.apache.jasper.servlet.JspServlet.serviceJspFile(JspServlet.java:342)
org.apache.jasper.servlet.JspServlet.service(JspServlet.java:267)
javax.servlet.http.HttpServlet.service(HttpServlet.java:717)

解决方案 »

  1.   

    文件找不到.  使用struts框架  这个文件会自动加入的你看看里面有吗?把问题说清楚,让大家方便解决
      

  2.   

    文件找不到.  使用struts框架  这个文件会自动加入的你看看里面有吗?把问题说清楚,让大家方便解决
      

  3.   

    用到struts标签了 ?需要把tld文件也放过去。
      

  4.   

    1*.先检查struts应用的标签文件的配置情况,对应\jakarta-struts-1.1\lib\中的*.tld文件,看看\StrutsWeb\WEB-INF\中的*.tld文件是否完整。
    如果不全,则需要从\jakarta-struts-1.1\lib\中,把全部*.tld文件copy至\StrutsWeb\WEB-INF\中。
    然后重新启动Apache Tomcat,看看效果如何。
    *.tld是标签库描述器文件,它们描述了多个struts标记库中的自定义标签。*2*.如果确认struts项目的标签文件配置无误,那么,在一般情况下,是需要把struts项目的这个WEB应用在Tomcat的服务应用中单独描述出来,
    即需修改TOMAT_HOME\conf\server.xml文件,在server.xml中找到如下行:<!-- Tomcat Root Context -->
    <!--
    <Context path="" docBase="ROOT" debug="0"/>
    -->然后在其下面加上这句:<Context path="/mystruts" docBase="TOMCAT_HOME\webapps\ROOT\StrutsWeb" debug="0" reloadable="true"/>保存server.xml,然后重新启动Apache Tomcat,这样就可以访问这个WEB应用了。可是我的server.xml根本就找不到他说的那段代码?!晕,这是怎么回事?!  
    # re: 救命~请问是什么原因?!! 2007-05-10 11:37 糖果找到了!我明白是怎么回事了!
    我的一个文件夹是用中文命名,在IE输入地址后老是显示404错误,找不到文件。
    后来我改成英文以后就没有出现过这种错误了。
    打开server.xml也找到了<Context>它的path和docBase以及docBase里面全是乱码,改正以后就再也没有出现过404问题。
    现在还是“org.apache.jasper.JasperException: File "/WEB-INF/struts-bean.tld" not found”正在解决中..... 
      

  5.   

    <%@ taglib uri="http://jakarta.apache.org/struts/tags-html" prefix="html"%>是你jsp中导入的uri没有找到相应的文件,你改成上面这个就可以了 。。
    或者你把uri的路径写对 就没问题了
      

  6.   

    File "/WEB-INF/struts-html.tld" not found 你没有导入struts-html.tld文件
      

  7.   

    应该是你配置的路径的问题,你在web.xml里面指定了<taglib>
    <taglib-uri>/struts-html</taglib-uri>
    <taglib-location>/WEB-INF/struts-html.tld</taglib-location>
    </taglib>但是你的WEB-INF目录下没有struts-html.tld,要不是你没有这个文件,就是你放的位置不对
    仔细检查一下
      

  8.   

    你没有导入struts-html.tld文件
    试试看导入一下
      

  9.   

    org.apache.jasper.JasperException: File "/WEB-INF/struts-html.tld" not found 
    很明显的错误!
      

  10.   

    缺少JAR包,或没有倒如tld标签
      

  11.   

    将你的war 包解开看看有没有这个文件/WEB-INF/struts-html.tld
    如果没有检查struts-html.tld 这个文件到底在什么位置
    然后到web.xml 中 <taglib-location> 的值改一下
    <taglib>
    <taglib-uri>xxx</taglib-uri>
    <taglib-location>/WEB-INF/struts-html.tld</taglib-location>
         </taglib>
      

  12.   

    你加了struts支持了吗?我记得会自动导入的诶,在myeclipse里面
      

  13.   

    你的WEB-INF目录下没有struts-html.tld    
      

  14.   

    在/WEB-INF/文件夹中没找到struts-html.tld文件
    struts-html.tld是标签文件,你把这个文件放到WEB-INF文件夹下
    然后重启应用服务器就可以了
      

  15.   

    没用开发工具可能有点麻烦,也可能是 buildpaths 的问题。 还是选择一个开发工具吧。 个人认为初学java时不用开发工具,但后面的最好还是用上。
      

  16.   

    少jar包 或者 标签 Not Found很明显的错误
      

  17.   

    少了jar包了,你可以直接在myeclipse里或者netbeans直接加入struts框架,那样jar包就不会少了
      

  18.   

    这个问题就是你在jsp页面用了struts标签,但是并没有把struts的标签库引进来~~~~~~~
      

  19.   

    可能是2方面引起的,没有文件或有文件但找不到1、你的应用中应该有struts-html.tld。一般是放在应用的WEB-INF\tld目录下,当然也可以放在WEB-INF下
    2、需要在web.xml 进行配置,通知Tomcat如何去找struts-html.tld,否则就是有整个文件找不到也是不行的。即需包含类似下面的代码
      <taglib>
        <taglib-uri>/WEB-INF/tld/struts-html</taglib-uri>
        <taglib-location>/WEB-INF/tld/struts-html.tld</taglib-location>
      </taglib>
    <taglib-location>就是说明该文件的位置,应与1的目录及文件名一致
    3、在jsp页面上使用时,文件头部需有类似下行的代码,指示html标签在哪个lib文件中定义
    <%@ taglib uri="/WEB-INF/tld/struts-html" prefix="html" %>
    这里的uri要与第2点中的uri一致另外,在这里(jsp页面上)也可以直接指定标签文件,如
    <%@ taglib uri="/WEB-INF/tld/struts-html.tld" prefix="html" %>
      

  20.   

    在XML配置中添加TLD
    就行了。
      

  21.   

    问题还是没有解决,我发现不光是那个标签库的问题,我点击刷新按钮的时候他又时候还弹出以下错误
    exception org.apache.jasper.JasperException: org.apache.jasper.JasperException: Unable to load class for JSP
    org.apache.jasper.servlet.JspServletWrapper.getServlet(JspServletWrapper.java:156)
    org.apache.jasper.servlet.JspServletWrapper.service(JspServletWrapper.java:329)
    org.apache.jasper.servlet.JspServlet.serviceJspFile(JspServlet.java:342)
    org.apache.jasper.servlet.JspServlet.service(JspServlet.java:267)
    javax.servlet.http.HttpServlet.service(HttpServlet.java:717)
    root cause org.apache.jasper.JasperException: Unable to load class for JSP
    org.apache.jasper.JspCompilationContext.load(JspCompilationContext.java:620)
    org.apache.jasper.servlet.JspServletWrapper.getServlet(JspServletWrapper.java:144)
    org.apache.jasper.servlet.JspServletWrapper.service(JspServletWrapper.java:329)
    org.apache.jasper.servlet.JspServlet.serviceJspFile(JspServlet.java:342)
    org.apache.jasper.servlet.JspServlet.service(JspServlet.java:267)
    javax.servlet.http.HttpServlet.service(HttpServlet.java:717)
    root cause java.lang.ClassNotFoundException: org.apache.jsp.GuessNumber.guess_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:134)
    org.apache.jasper.servlet.JasperLoader.loadClass(JasperLoader.java:66)
    org.apache.jasper.JspCompilationContext.load(JspCompilationContext.java:618)
    org.apache.jasper.servlet.JspServletWrapper.getServlet(JspServletWrapper.java:144)
    org.apache.jasper.servlet.JspServletWrapper.service(JspServletWrapper.java:329)
    org.apache.jasper.servlet.JspServlet.serviceJspFile(JspServlet.java:342)
    org.apache.jasper.servlet.JspServlet.service(JspServlet.java:267)
    javax.servlet.http.HttpServlet.service(HttpServlet.java:717)谢谢高手帮我看哈,分可以继续加
      

  22.   

    所有的错误都是因为未导入jar包 重新来一遍试试吧
      

  23.   

    web开发都不用ide工具,lz是牛人
    把那个jsp帖出来看看...
      

  24.   

    问题暂时解决了呵呵,问题出在两个地方
    <%@ taglib uri="/WEB-INF/struts-html.tld" prefix="html" %>
    把/WEB-INF/中前面的 斜线去掉就解决了一个问题,还一个就是WEB-INF/lib应该房有.jar文件.
    哪位能帮我讲解哈path中斜线的作用
      

  25.   

    File "/WEB-INF/struts-html.tld" not found 
    说文件struts-html.tld 在WEB-INF下没有找到,这是Struts的标签,
    你先包有没, 看文件有没有, 再看配置配了吗?
      

  26.   

    建议把struts Jar包重新导入一次,看看是否还存在问题。
      

  27.   

    检查/WEB-INF/struts-html.tld 有没有,如果没有应该在启动时候就报错了。
    <%@ taglib uri="WEB-INF/struts-html.tld" prefix="html" %>,写得对不对,不对的话,进页面报错。 
      

  28.   

    再发一下,以下内容为转载,这个讲的非常好,能让你彻底了解各种路径问题JSP、Servlet中的相对路径和绝对路径1、服务器端的地址服务器端的相对地址指的是相对于你的web应用的地址,这个地址是在服务器端解析的(不同于html和javascript中的相对地址,他们是由客户端浏览器解析的)也就是说这时候在jsp和servlet中的相对地址应该是相对于你的web应用,即相对于ip/war的。其用到的地方有:forwarder:/ 相对于ip/war
    servlet中的request.getRequestDispatcher(address);这个address是在服务器端解析的,所以,你要 forwarder到a.jsp应该这么写:request.getRequestDispatcher(“/user/a.jsp”)这个/相对于当前的web应用webapp,其绝对地址就是:http://192.168.0.1/webapp/user/a.jsp。sendRedirect:/代表ip在jsp中的“/”表示的根为“ip”<jsp:include page = "url" flush="true"/>
    <%@ include file="url" %>
    <%@ page errorPage = "url" %>时,
    这里url使用的“/”表示的根为“ip/war/”2、客户端的地址html中的相对地址都是相对于 ip 的Html中的form表单的action属性的地址应该是相对于 ip 的,所以,如果提交到a.jsp为:action=”/webapp/user/a.jsp”;提交到servlet为action=”/webapp/handleservlet”javascript也是在客户端解析的,所以其相对路径和form表单一样。3、站点根目录和css路径问题我们称类似这样的相对路径/webapp/….为相对于站点根目录的相对路径。当在jsp中引入css时,如果其相对路径相对于当前jsp文件的,而在一个和这个jsp的路径不一样的servlet中forwarder这个 jsp时,就会发现这个css样式根本没有起作用。这是因为在servlet中转发时css的路径就是相对于这个servlet的相对路径而非jsp的路径了。所以这时候不能在jsp中用这样的路径:或者类似href=\"one.css\"和../../one.css的html相对路径是相对于引用这个css的文件的相对路径。而在servlet中转发时就是相对于这个servlet的相对路径了,因为jsp路径和servlet路径是不一样的,所以这样的引用肯定是出错的。所以这个时候,要用站点根目录,就是相对于http://192.168.0.1/的目录,以“/”开头。因此上述错误应更正为href=”/webapp/one.css”类似的站点根目录的相对目录。这样在servlet转发后和jsp中都是相对于站点根目录的相对路径,就能正确使用所定义的css样式了。
    4 为了避免jsp跳jsp,servlet跳jsp,forward方式跳转,sendRedirect跳转产生的路径问题,
       对于jsp和使用sendRedirect跳转的servlet,采用直接使用带
       容器路径[String request.getContextPath()]的绝对路径就可以彻底解决,即:
        1)<%
              String contextPath = request.getContextPath();
              String url = contextPath + /user/login.jsp";
           %>
          
           <a href="<%=url%>"> login</a>
       2) ....
          String contextPath = request.getContextPath();
          String targetPath = contextPath + "/user/login.jsp";
          RequestDispatcher rd = request.getRequestDispatcher(targetPath);
          rd.forward(request, response);
          ......   对于使用forward跳转的servlet,则不要加容器路径,否则就重复出现 容器路径
      

  29.   

    如果有用到struts框架的标签库,建议用myeclipse进行开发,直接导入struts框架,那样会减少很多不必要的麻烦