2010-01-19 66 views
4

我使用:问题与战斧表达式语言功能的变量

  • 的Tomcat 6.0
  • JSF 1.2 - 钻嘴鱼科实施
  • 战斧1.1.9

我进口的taglib

我的电话是:
<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) 

任何提示?谢谢大家的帮助:)

+0

你发布的两条代码行是相同的。请修复或详细说明。 – BalusC 2010-01-19 14:59:06

+0

它可以正常工作Facelets – Bozho 2010-01-20 11:15:32

回答

1

我能够重现确切这个问题与在Mojarra 1.2_14和Tomahawk 1.1.9上的Tomcat 6.0.18。尽管在堆栈跟踪中org.apache.el.*方法的行号稍有不同,但在Tomcat 6.0.20中也发生了同样的问题。

为了排除Tomcat的jsp-el不被怀疑,我也在Glassfish v3上进行了测试,它使用了不同的EL impl。它产生了基本上相同的例外,但在堆栈跟踪中使用不同的EL类(com.sun.el.*而不是org.apache.el.*)。

然而,有趣的是,当使用Facelets而不是JSP时,它的确能够完美地工作,正如Bozho所评论的那样。这意味着Tomcat和Glassfish的JSP EL实现都被破坏了。

我会开始为Tomcat 6在这里提出一个问题http://tomcat.apache.org/bugreport.html,看看Apache的人对此有何评论。

+0

谢谢BalusC。我将在tomcat bug库中提交奇怪的行为。很高兴认识你。我从你的博客中学到了很多东西!希望解决这个问题。我现在使用了一种解决方法。我用来显示或不显示一些结果。 – M3rlino 2010-01-22 14:20:39