Raj*_*pta 5 java jsf tomcat converter el
我最近将我的JSF应用程序(使用primefaces)从glassfish 3.1迁移到tomcat7服务器.以前通过actionlistener
属性工作将enum值作为字符串传递给托管bean方法(不需要转换器将字符串转换为枚举)但现在它失败了 javax.el.MethodNotFoundException
.
JSF页面:
Run Code Online (Sandbox Code Playgroud)<h:form> <h:outputLabel value="Title"/><br/> <p:inputText value="#{lobController.current.title}"/> <p:commandButton action="#{lobController.create('CAR')}" value="Post"/> </h:form>
管理豆方法
Run Code Online (Sandbox Code Playgroud)public void create(Type type) { ... }
记录消息:
javax.el.MethodNotFoundException:/_newLOB.xhtml @ 85,111 action ="#{lobController.create('CAR')}":找不到方法:com中的d432.xontrollers.LOBController@15b2cec.create(java.lang.String) .sun.faces.application.ActionListenerImpl.processAction(ActionListenerImpl.java:110)at javax.faces.component.UICommand.broadcast(UICommand.java:315)at javax.faces.component.UIData.broadcast(UIData.java:1093 )javax.faces.component.Ubuata.broadcast(UIData.java:1093)at javax.faces.component.UIViewRoot.broadcastEvents(UIViewRoot.java:794)at javax.faces.component.UIViewRoot.processApplication(UIViewRoot.java: 1259)com.sun.faces.lifecycle.InvokeApplicationPhase.execute(InvokeApplicationPhase.java:81)at com.sun.faces.lifecycle.Phase.doPhase(Phase.java:101)at com.sun.faces.lifecycle.LifecycleImpl .execute(LifecycleImpl.java:118)位于org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:304)的javax.faces.webapp.FacesServlet.service(FacesServlet.java:593).apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:210)org.primefaces.webapp.filter.FileUploadFilter.doFilter(FileUploadFilter.java:79)at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain. java:243)at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:210)
如果我更改托管bean方法,这将开始工作如下:
Run Code Online (Sandbox Code Playgroud)public void create(String type) { Type type = Type.valueOf(type); ... }
在Tomcat 7.0.14上使用Primefaces 3.1和JSF 2.1.6
Bal*_*usC 13
这是Tomcat的EL实现中的一个错误.我已经为你报告过:问题52970.希望他们不像我以前的报告那样挑剔.
在他们修复之前,最好的办法是在你的webapp中删除Glassfish 3的EL 2.2实现JAR文件的副本,/WEB-INF/lib
然后通过以下条目告诉Mojarra使用它web.xml
:
<context-param>
<param-name>com.sun.faces.expressionFactory</param-name>
<param-value>com.sun.el.ExpressionFactoryImpl</param-value>
</context-param>
Run Code Online (Sandbox Code Playgroud)
更新:票证提到它是固定的,它将在7.0.27及之后.
归档时间: |
|
查看次数: |
5121 次 |
最近记录: |