本帖最后由 hnalenx 于 2010-10-22 22:36:27 编辑

解决方案 »

  1.   

    可能是tiles文件存放的路径不对,也可能是你的struts。xml文件中指定的tiles配置文件的路径指定错了
      

  2.   

    我现在已经把jsp的引入tiles标签的语句改成从项目的WEB-INF文件夹中引入, 即我将页面引入tiles标签的语句改为<%@ taglib uri="/WEB-INF/struts-tiles.tld" prefix="tiles" %>,struts-config.xml文件中加载插件的代码如下:<plug-in className="org.apache.struts.tiles.TilesPlugin" >
        <set-property property="definitions-config" value="/WEB-INF/tiles-defs.xml"/>
        <set-property property="definitions-parser-validate" value="true" />
      </plug-in>
    tiles-defs.xml配置文件如下:
    <?xml version="1.0" encoding="UTF-8"?>
    <!DOCTYPE tiles-definitions PUBLIC "-//Apache Software Foundation//DTD Struts Configuration 1.3//EN" "http://jakarta.apache.org/struts/dtds/tiles-config_1_3.dtd">
    <tiles-definitions>
     <definition name="templatePage" path="/TilesLayout/tilesLayout.jsp">
       <put name="logoImage" value="/TilesLayout/top.jsp"></put>
       <put name="nav" value="/TilesLayout/left_nav.jsp"></put>
       <put name="content" value="/TilesLayout/content.jsp"></put>
       <put name="Author" value="/TilesLayout/Author.jsp"></put>
     </definition>
    </tiles-definitions>
    模版页面的关键代码如下:
     <div id="top"><tiles:insert attribute="logoImage"></tiles:insert></div>
      <div id="nav_left"><tiles:insert attribute="nav"></tiles:insert></div>
      <div id="con"><tiles:insert attribute="content"></tiles:insert></div>
      <div id="au"><tiles:insert attribute="author"></tiles:insert></div>
    访问模版页错误提示如下:
    [code=Java]org.apache.jasper.JasperException: Failed to load or instantiate TagExtraInfo class: org.apache.struts.taglib.tiles.UseAttributeTei
    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:281)
    org.apache.jasper.compiler.TagLibraryInfoImpl.createTagInfo(TagLibraryInfoImpl.java:419)
    org.apache.jasper.compiler.TagLibraryInfoImpl.parseTLD(TagLibraryInfoImpl.java:250)
    org.apache.jasper.compiler.TagLibraryInfoImpl.<init>(TagLibraryInfoImpl.java:163)
    org.apache.jasper.compiler.Parser.parseTaglibDirective(Parser.java:383)
    org.apache.jasper.compiler.Parser.parseDirective(Parser.java:446)
    org.apache.jasper.compiler.Parser.parseElements(Parser.java:1393)
    org.apache.jasper.compiler.Parser.parse(Parser.java:130)
    org.apache.jasper.compiler.ParserController.doParse(ParserController.java:255)
    org.apache.jasper.compiler.ParserController.parse(ParserController.java:103)
    org.apache.jasper.compiler.Compiler.generateJava(Compiler.java:185)
    org.apache.jasper.compiler.Compiler.compile(Compiler.java:347)
    org.apache.jasper.compiler.Compiler.compile(Compiler.java:327)
    org.apache.jasper.compiler.Compiler.compile(Compiler.java:314)
    org.apache.jasper.JspCompilationContext.compile(JspCompilationContext.java:589)
    org.apache.jasper.servlet.JspServletWrapper.service(JspServletWrapper.java:317)
    org.apache.jasper.servlet.JspServlet.serviceJspFile(JspServlet.java:313)
    org.apache.jasper.servlet.JspServlet.service(JspServlet.java:260)
    javax.servlet.http.HttpServlet.service(HttpServlet.java:717)
    cn.edu.zjut.Servlet.SetCharacterEncodingFilter.doFilter(SetCharacterEncodingFilter.java:23)
    root cause java.lang.ClassNotFoundException: org.apache.struts.taglib.tiles.UseAttributeTei
    org.apache.catalina.loader.WebappClassLoader.loadClass(WebappClassLoader.java:1516)
    org.apache.catalina.loader.WebappClassLoader.loadClass(WebappClassLoader.java:1361)
    org.apache.jasper.compiler.TagLibraryInfoImpl.createTagInfo(TagLibraryInfoImpl.java:416)
    org.apache.jasper.compiler.TagLibraryInfoImpl.parseTLD(TagLibraryInfoImpl.java:250)
    org.apache.jasper.compiler.TagLibraryInfoImpl.<init>(TagLibraryInfoImpl.java:163)
    org.apache.jasper.compiler.Parser.parseTaglibDirective(Parser.java:383)
    org.apache.jasper.compiler.Parser.parseDirective(Parser.java:446)
    org.apache.jasper.compiler.Parser.parseElements(Parser.java:1393)
    org.apache.jasper.compiler.Parser.parse(Parser.java:130)
    org.apache.jasper.compiler.ParserController.doParse(ParserController.java:255)
    org.apache.jasper.compiler.ParserController.parse(ParserController.java:103)
    org.apache.jasper.compiler.Compiler.generateJava(Compiler.java:185)
    org.apache.jasper.compiler.Compiler.compile(Compiler.java:347)
    org.apache.jasper.compiler.Compiler.compile(Compiler.java:327)
    org.apache.jasper.compiler.Compiler.compile(Compiler.java:314)
    org.apache.jasper.JspCompilationContext.compile(JspCompilationContext.java:589)
    org.apache.jasper.servlet.JspServletWrapper.service(JspServletWrapper.java:317)
    org.apache.jasper.servlet.JspServlet.serviceJspFile(JspServlet.java:313)
    org.apache.jasper.servlet.JspServlet.service(JspServlet.java:260)
    javax.servlet.http.HttpServlet.service(HttpServlet.java:717)
    cn.edu.zjut.Servlet.SetCharacterEncodingFilter.doFilter(SetCharacterEncodingFilter.java:23)
    code]

    各位再看看怎么回事啊?