Проблема с функциями языка выражений в тегах Tomahawk - PullRequest
4 голосов
/ 19 января 2010

Я использую:

  • Tomcat 6.0
  • Jsf 1.2 - Мохарра Реализация
  • Томагавк 1.1.9

Я импортировал taglib

<%@ taglib uri="http://java.sun.com/jsp/jstl/functions" prefix="fn" %>

когда я звоню:

<h:outputText value="#{fn:indexOf('ciao','i')}"></h:outputText>

Вывод 1

когда я использую

<t:outputText value="#{fn:indexOf('ciao','i')}"></t:outputText>

выдает серверное исключение, как будто есть некоторые проблемы со ссылкой на нужную библиотеку.

javax.el.ELException: Function 'fn:indexOf' not found
    at org.apache.el.lang.ExpressionBuilder.visit(ExpressionBuilder.java:171)
    at org.apache.el.parser.SimpleNode.accept(SimpleNode.java:145)
    at org.apache.el.lang.ExpressionBuilder.prepare(ExpressionBuilder.java:133)
    at org.apache.el.lang.ExpressionBuilder.build(ExpressionBuilder.java:147)

Есть подсказка? Спасибо всем за помощь:)

1 Ответ

1 голос
/ 22 января 2010

Мне удалось воспроизвести точно эту проблему с Мохаррой 1.2_14 и Томагавком 1.1.9 на Tomcat 6.0.18. Та же проблема возникла и в Tomcat 6.0.20, хотя номера строк методов org.apache.el.* в трассировке стека немного отличались.

Чтобы исключить подозрение Tomcat jsp-el, я также провел тестирование на Glassfish v3, в котором используется другой EL-импл. Он выдал в основном то же исключение, хотя с различными классами EL в stacktrace (com.sun.el.* вместо org.apache.el.*).

Однако интересным фактом является то, что он действительно работает безупречно при использовании Facelets вместо JSP, как прокомментировал Божо. Это будет означать, что реализации JSP EL для Tomcat и Glassfish не работают.

Я бы начал писать вопрос для Tomcat 6 здесь http://tomcat.apache.org/bugreport.html и посмотрю, что об этом говорят парни из Apache.

...