はい、この質問はthis oneと非常に似ていますが、タグリブからフォルダへの宣言ではなくTLDファイルで作業しているという大きな違いがあります。JSPの2タグファイル "/ WEB-INF/tags"が見つかりません
私の設定は次のとおりです。純粋なJavaタグライブラリをほぼJSPに移行しています(一部のタグはJavaフォームでも存続します)。私は自分のclasspath:META-INF
フォルダの下にTLDを定義しました。いくつかのタグはクラスとして定義され、その他のタグは/WEB-INF/tags
の下にJSP 2タグファイルとして定義されています。例は、与えられた:
<tag-file>
<name>navbar</name>
<path>/WEB-INF/tags/navbar.tag</path>
<display-name>Navbar</display-name>
</tag-file>
このすべてのEclipseの下で素晴らしい作品を、私は手動でWEB-INF
からsrc/META-INF
からWeb Deployment Assembly
を設定しなければならなかったものの、それ以外のTLDファイルはTomcatが認識されません。
コードを喜んでデバッグした後、SITに配備するアプリケーションのWARバージョンを作成しようとしました。 WEB-INF
の下にあるtags
ディレクトリがJSP 2タグファイルとともに存在しても、アプリケーションを実行することはできません。
、エラーがiiiiiiiiiiiiis:
org.apache.jasper.JasperException: /login.jsp (line: 3, column: 0) File [/WEB-INF/tags/navbar.tag] not found
org.apache.jasper.compiler.DefaultErrorHandler.jspError(DefaultErrorHandler.java:41)
org.apache.jasper.compiler.ErrorDispatcher.dispatch(ErrorDispatcher.java:275)
org.apache.jasper.compiler.ErrorDispatcher.jspError(ErrorDispatcher.java:91)
org.apache.jasper.compiler.Parser.processIncludeDirective(Parser.java:335)
org.apache.jasper.compiler.Parser.parseIncludeDirective(Parser.java:368)
org.apache.jasper.compiler.Parser.parseDirective(Parser.java:471)
org.apache.jasper.compiler.Parser.parseElements(Parser.java:1435)
org.apache.jasper.compiler.Parser.parse(Parser.java:139)
org.apache.jasper.compiler.ParserController.doParse(ParserController.java:227)
org.apache.jasper.compiler.ParserController.parse(ParserController.java:100)
org.apache.jasper.compiler.Compiler.generateJava(Compiler.java:199)
org.apache.jasper.compiler.Compiler.__compile(Compiler.java:356)
org.apache.jasper.compiler.Compiler.compile(Compiler.java)
org.apache.jasper.compiler.Compiler.compile(Compiler.java:336)
org.apache.jasper.compiler.Compiler.compile(Compiler.java:323)
org.apache.jasper.JspCompilationContext.compile(JspCompilationContext.java:585)
org.apache.jasper.servlet.JspServletWrapper.service(JspServletWrapper.java:363)
org.apache.jasper.servlet.JspServlet._serviceJspFile(JspServlet.java:396)
org.apache.jasper.servlet.JspServlet.serviceJspFile(JspServlet.java)
org.apache.jasper.servlet.JspServlet.service(JspServlet.java:340)
javax.servlet.http.HttpServlet.service(HttpServlet.java:729)
TLDは、いつものように宣言されている
<%@ taglib prefix="example" uri="http://www.example.org/example.tld"%>
どのように私はこの問題を解決することができますか?
は、残念ながら、これは私の質問への答えとしては動作しません、次のとおりです。(無Mavenは)ここに私のTLDファイルではありません。サーブレットの部分は無関係です。プロジェクトには特定のフォルダ名を指定する必要があります(フォルダ名のカスタマイズにはある程度の自由度があります)。もっとも重要なのは、TLDファイルをjarファイル'/ WEB-INF/tags'ディレクトリよりも優先されます。私はあなたに答えを短くし、トピックに焦点を当てるように提案したい。私は、あなたの答えを編集して、タグの世界と無関係な部分を削除します。 –