p:按钮导致ClassCastException

时间:2011-04-05 07:19:18

标签: jsf-2 primefaces

我将Primefaces 2.2与Spring 3.0.5一起使用,到目前为止工作得很好,但今天我遇到了以下问题。我想要包含p:按钮组件,但是当我这样做时,我得到以下异常:

java.lang.ClassCastException: org.primefaces.optimus.navigationhandler.ViewIdBasedNavigationHandler cannot be cast to javax.faces.application.ConfigurableNavigationHandler
    at org.primefaces.component.button.ButtonRenderer.findNavigationCase(ButtonRenderer.java:114)
    at org.primefaces.component.button.ButtonRenderer.buildOnclick(ButtonRenderer.java:90)
    at org.primefaces.component.button.ButtonRenderer.encodeMarkup(ButtonRenderer.java:56)
    at org.primefaces.component.button.ButtonRenderer.encodeEnd(ButtonRenderer.java:38)
    at javax.faces.component.UIComponentBase.encodeEnd(UIComponentBase.java:879)
    at javax.faces.component.UIComponent.encodeAll(UIComponent.java:1650)
    at javax.faces.component.UIComponent.encodeAll(UIComponent.java:1646)
    at ...

ViewIdBasedNavigationHandler在我的faces-config.xml中配置,所有其他的primefaces组件到目前为止一直在工作。据我所知,ViewIdBasedNavigationHandler类派生自javax.faces.application.NavigationHandler,而不是来自javax.faces.application.ConfigurableNavigationHandler,因此ClassCastException是有意义的。但由于我无法找到其他用户遇到同样的问题,我想我错过了一些东西。

有什么想法吗? 延

1 个答案:

答案 0 :(得分:0)

你不需要ViewIdBasedNavigationHandler,如果你有它,我建议删除它或旧的optimus项目。 JSF 2.0内置了基于视图id的隐式导航。