0

myTld.tldファイルで次のような関数を定義しようとしています

<?xml version="1.0" encoding="UTF-8"?>
<taglib version="2.1" 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">

<tlib-version>1.0</tlib-version>
<short-name>customFunctions</short-name>
<uri>/WEB-INF/tags/myTld.tld</uri>

<function>
   <description>
       my Desc
   </description>
   <name>isActive</name>
   <function-class>com.Functions</function-class>
   <function-signature>boolean isActive()</function-signature>
 </function>
</taglib>

Elスクリプトから私は次のように呼んでいます

<%@ taglib prefix="customFunctions" uri="/WEB-INF/tags/myTld.tld"%>
${customFunctions:isActive()}

私がこれをするたびに、私は得ています

Invalid syntax for function signature in TLD.  Tag Library: customFunctions, Function: isActive
4

2 に答える 2

1

変化する

<function-signature>boolean isActive()</function-signature>

<function-signature>java.lang.Boolean isActive()</function-signature>

また<description>my Desc</description>、1行に変更します。それも問題になる可能性があります(そうではない可能性があります)。

于 2013-02-28T23:15:42.280 に答える
0

関数シグネチャに関しては問題がないようです。説明は、適切なタグ構造で閉じられている限り、複数行に分割できます。リターンタイプでさえ、プリミティブとして指定できます。

しかし、あなたのサポートに感謝します。数時間後に同じことを試したところ、正常に実行されました。Tomcatが奇妙なエラーを出した理由がわかりません(複数のコンパイルと再デプロイの後でも)。Tomcatは、署名が間違っていると表示されたときに正確なエラーを伝えるのに十分賢いはずだと思いますが、tomcatログから他の情報も得られませんでした。

于 2013-03-01T22:46:27.950 に答える