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

Я использую:

  • Томкэт 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)

Любой намек? Спасибо всем за помощь :)


person M3rlino    schedule 19.01.2010    source источник
comment
Две строки кода, которые вы опубликовали, одинаковы. Пожалуйста, исправьте или уточните подробнее.   -  person BalusC    schedule 19.01.2010


Ответы (1)


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

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

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

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

person BalusC    schedule 22.01.2010
comment
Спасибо BalusC. Я запишу странное поведение в репозиторий ошибок tomcat. Приятно познакомиться. Многое я узнал из вашего блога! Будем надеяться решить этот вопрос. Я использовал обходной путь на данный момент. Я использовал ‹f:verbatim rendered=›, чтобы показать или нет какой-то результат. - person M3rlino; 22.01.2010