Jsf Websphere上EL表达式中的枚举参数

Jsf Websphere上EL表达式中的枚举参数,jsf,enums,websphere,el,Jsf,Enums,Websphere,El,在JSF/facelet页面中,我尝试调用一个以枚举值作为参数的方法,如下所示: <f:viewAction action="#{myController.myMethod('MY_ENUM_VALUE')}" /> 我想知道Websphere中是否有一个简单的解决方案配置?或者如果我应该在我的WAR中集成一个不同的EL实现来覆盖Websphere。任何其他建议也欢迎 其他信息: WebSphere8.5,使用Mojarra2.2.5实现覆盖Websphere的实现,使用PAREN

在JSF/facelet页面中,我尝试调用一个以枚举值作为参数的方法,如下所示:

<f:viewAction action="#{myController.myMethod('MY_ENUM_VALUE')}" />
我想知道Websphere中是否有一个简单的解决方案配置?或者如果我应该在我的WAR中集成一个不同的EL实现来覆盖Websphere。任何其他建议也欢迎

其他信息:

WebSphere8.5,使用Mojarra2.2.5实现覆盖Websphere的实现,使用PARENT_LAST模式 使用Spring并在faces-config.xml中配置SpringBeanFacesELResolver 我没有在EAR/WAR中打包任何特殊的EL实现。
Tomcat不提供JSF实现,因此您可以自由提供与您的Tomcat服务器提供的servler/JSP版本兼容的任何版本

但是,将JSF集成到容器中的应用程序服务器

将库绑定到服务器中包含的WAR中不会自动覆盖服务器库。Java默认为父级第一类加载模型。任意企业库中可用的某些配置信息对容器可能没有意义,并导致未定义的行为。此外,部署描述符可以指定不一定与容器兼容的特定于战争的库的加载

其中一些容器支持父类加载。这可能会导致很多奇怪的行为,通常应该避免

据我所知,只有,而且我怀疑只是暂时支持WAS 7二进制JSF应用程序WAR文件

因此,您可能没有真正覆盖平台实现,而是通过在WAR文件中绑定JSF库触发一些未定义的行为


我可能错过了你正在做的事情;如果是,请提供更多详细信息。

谢谢您的回答。这是绝对有效和有趣的答案。不幸的是,我忘了提到,我已经在Websphere中使用了PARENT_LAST模式,我确信使用了Mojara。虽然它没有出现在堆栈跟踪中,但我相信JSF将委托给平台EL2.2实现。当我尝试计算一个类似于您的表达式时,我在内置于WAS8.5.5的JSF2.1实现上得到了相同的结果。我认为这是一个平台限制/缺陷。
Caused by: javax.el.MethodNotFoundException: /myPage.xhtml @16,24 action="#{myController.myMethod('MY_ENUM_VALUE')}": Method not found: com.example.MyController@807f4c26.myMethod(java.lang.String)
    at com.sun.faces.facelets.el.TagMethodExpression.invoke(TagMethodExpression.java:109)