我正在做一个将在 Websphere 上运行的项目。
我在这个项目中使用 JSF/Facelets/Richfaces。
我想使用 JBoss EL 实现,因为它允许使用来自 EL 等的参数调用方法。
...通常这是通过获取 JBoss EL jar 然后将其放入 web.xml 来完成的:
<context-param>
<param-name>com.sun.faces.expressionFactory</param-name>
<param-value>org.jboss.el.ExpressionFactoryImpl</param-value>
</context-param>
但是这不起作用......我不知道它是Websphere的问题还是......???
转到页面时,我得到一个堆栈跟踪,说它无法解析我已向方法传递参数的 EL:
<a4j:commandLink value="Delete" action="#{mcsaAdmin.deleteLanguage(1234)}" />
查看堆栈跟踪,它似乎仍在使用标准的 sun EL:
Caused by: javax.el.ELException: Error Parsing: #{mcsaAdmin.deleteLanguage(1234)}
at com.sun.el.lang.ExpressionBuilder.createNodeInternal(Unknown Source)
at com.sun.el.lang.ExpressionBuilder.build(Unknown Source)
at com.sun.el.lang.ExpressionBuilder.createMethodExpression(Unknown Source)
at com.sun.el.ExpressionFactoryImpl.createMethodExpression(Unknown Source)
at com.sun.facelets.tag.TagAttribute.getMethodExpression(TagAttribute.java:141)
请注意上面指定的 'com.sun.el.ExpressionFactoryImpl' 而不是 'org.jboss.el.ExpressionFactoryImpl' ...
我在做一些明显错误的事情吗?任何人都有任何想法......我正在使用majorra项目的标准JSF实现或sun网站和richfaces 3.1.4和facelets 1.1.14上提供的任何东西。