興味深い問題があります...アプリケーションにJSPタグを追加しようとしています。私はfunctions.tld
を/WEB-INF/tags/
に保存しましたが、エラーメッセージIllegal TLD path /WEB-INF/tags/functions.tld, must not start with "/WEB-INF/tags"
が出てきましたので、移動しようとしました/WEB-INF/
これはTag file directory /WEB-INF/functions.tld does not start with "/WEB-INF/tags"
です。だから私はどこに置くのですか?タグファイルディレクトリ/WEB-INF/functions.tldが "/ WEB-INF/tags"で始まらない
TLDファイル
<?xml version="1.0" encoding="UTF-8"?>
<taglib 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-jsptaglibrary_2_1.xsd"
version="2.1">
<tlib-version>1.0</tlib-version>
<short-name>my</short-name>
<!-- Invoke 'Generate' action to add tags or functions -->
<function>
<name>urlencode</name>
<function-class>library.StringUtils</function-class>
<function-signature>java.lang.String urlencode(java.lang.String)</function-signature>
</function>
</taglib>
JSPファイル
<%@ taglib prefix="f" tagdir="/WEB-INF/tags/functions.tld" %>
エラーないときは、タグフォルダ内の
org.apache.jasper.JasperException: PWC6191: Tag file directory /WEB-INF/functions.tld does not start with "/WEB-INF/tags"
エラー時に中/タグ/フォルダ
Error invoking ServletContainerInitializer org.apache.jasper.runtime.TldScanner
org.apache.jasper.JasperException: PWC6336: Illegal TLD path /WEB-INF/tags/functions.tld, must not start with "/WEB-INF/tags"
at org.apache.jasper.runtime.TldScanner.processTldsInFileSystem(TldScanner.java:573)
at org.apache.jasper.runtime.TldScanner.processTldsInFileSystem(TldScanner.java:566)
at org.apache.jasper.runtime.TldScanner.scanTlds(TldScanner.java:354)
at org.apache.jasper.runtime.TldScanner.onStartup(TldScanner.java:242)
at org.apache.catalina.core.StandardContext.callServletContainerInitializers(StandardContext.java:5713)
at com.sun.enterprise.web.WebModule.callServletContainerInitializers(WebModule.java:623)
at org.apache.catalina.core.StandardContext.start(StandardContext.java:5609)
at com.sun.enterprise.web.WebModule.start(WebModule.java:540)
at org.apache.catalina.core.ContainerBase.addChildInternal(ContainerBase.java:917)
at org.apache.catalina.core.ContainerBase.addChild(ContainerBase.java:900)
at org.apache.catalina.core.StandardHost.addChild(StandardHost.java:684)
at com.sun.enterprise.web.WebContainer.loadWebModule(WebContainer.java:2044)
at com.sun.enterprise.web.WebContainer.loadWebModule(WebContainer.java:1690)
at com.sun.enterprise.web.WebApplication.start(WebApplication.java:107)
at org.glassfish.internal.data.EngineRef.start(EngineRef.java:122)
Startup of context failed due to previous errors]]
uri属性 '<%@ taglib prefix =" f "uri ="/WEB-INF/functions.tld "%>'を使用するとどうなりますか? – Gimby
おそらく、なぜ私はその質問をするのか説明するのに役立ちます。* tagdir *という名前の属性を使ってタグ*ファイル*を参照して、カスタムタグライブラリを定義する方法を調べると、 uri属性を使用した例 – Gimby
@Gimbyエラーはありません:)。それをチェックすると..... – Christian