Ошибка при создании функции Seam Custom EL - PullRequest
0 голосов
/ 16 сентября 2011

Я попытался создать пользовательскую функцию el в шве 2.2, выполнив http://seamframework.org/Documentation/CreatingCustomELFunctions

Содержимое taglib:

<?xml version="1.0"?>
<!DOCTYPE facelet-taglib PUBLIC "-//Sun Microsystems, Inc.//DTD Facelet Taglib 1.0//EN" "facelet-taglib_1_0.dtd">
<facelet-taglib>
     <library-class>org.el.func.FnLibrary</library-class>
</facelet-taglib>

Но во время работы выдается следующая ошибка синтаксического анализа.

SEVERE [compiler] Error Loading Library: vfszip:/home/anand/jboss-5.1.0.GA/server/default/deploy/stagebitz.ear/stagebitz.jar/META-INF/elfunctions.taglib.xml
java.io.IOException: Error parsing [vfszip:/home/anand/jboss-5.1.0.GA/server/default/deploy/stagebitz.ear/stagebitz.jar/META-INF/elfunctions.taglib.xml]: 


Caused by: org.xml.sax.SAXException: Error Handling [vfszip:/home/anand/jboss-5.1.0.GA/server/default/deploy/stagebitz.ear/stagebitz.jar/META-INF/elfunctions.taglib.xml@4,57] <library-class>

at com.sun.facelets.compiler.TagLibraryConfig$LibraryHandler.endElement(TagLibraryConfig.java:271)

Использование JSF 1.2

В web.xml используются следующие параметры.

 <context-param>
      <param-name>javax.faces.FACELETS_LIBRARIES</param-name>
      <param-value>
        /WEB-INF/elfunctions.taglib.xml
    </param-value>
   </context-param>

1 Ответ

0 голосов
/ 23 сентября 2011

Пример для сопоставления isEmpty:

<!DOCTYPE facelet-taglib PUBLIC
        "-//Sun Microsystems, Inc.//DTD Facelet Taglib 1.0//EN"
        "http://java.sun.com/dtd/facelet-taglib_1_0.dtd">
<facelet-taglib>
     <namespace>yournamespace</namespace>
    <function>
        <function-name>functionname</function-name>
        <function-class>fullclanmae</function-class>
        <function-signature>java.lang.Boolean isEmpty(java.util.Set)</function-signature>
    </function>
</facelet-taglib>

Поместите его в classpath, и он ничего не будет делать в web.xml

...