升级到JSF2后,Tomahawk JSCookMenu不会触发任何操作

时间:2012-01-27 14:20:28

标签: jsf-2 myfaces tomahawk mojarra

我刚刚将一些中型Web应用程序从JSF 1.2 / MyFaces迁移到JSF 2.0 / Mojarra。除了我实现的一些自定义组件之外,一切似乎都有效,除了来自Tomahawk的JSCookMenu(是的,我有Tomahawk这是来自Apache的库,但仍然想使用Mojarra - 但我知道不应该有任何大问题)。我用相应的jsf-api.jar和jsf-impl.jar替换了myfaces-api.jar和myfaces-impl.jar,并从web.xml中取出尽可能多的MyFaces参数和过滤器(有些需要留下来因为我仍然使用战斧)。我还为了JSF2将Tomahawk升级到了1.1.11。

应用程序的JSCookMenu呈现得很好,但在单击菜单项时不会触发任何操作。我有一些t:navigationMenuItem,其action属性绑定到faces-config.xml中的结果,该结果应该加载一个新的视图id,还有一些t:navigationMenuItem,其actionListener属性绑定到bean方法(Logout菜单项,for例)。它们都不起作用,我的bean中的actionListener代码甚至都没有被调用。

我甚至不确定如何调查此问题,是否有人知道如何解决这个问题?我希望web.xml中的某些内容可以提供帮助。

导航案例在faces-config.xml中正确编写,在迁移到Mojarra之前,它们曾用于JSF 1.2 / MyFaces以及JSF 2 / MyFaces。

这是我的web.xml文件的相关部分:

<servlet>
    <servlet-name>faces</servlet-name>
    <servlet-class>javax.faces.webapp.FacesServlet</servlet-class>
    <load-on-startup>1</load-on-startup>
</servlet>
<servlet-mapping>
    <servlet-name>faces</servlet-name>
    <url-pattern>*.xhtml</url-pattern>
</servlet-mapping>
<context-param>
    <param-name>com.sun.faces.allowTextChildren</param-name>
    <param-value>true</param-value>
</context-param>
<context-param>
    <param-name>javax.faces.FACELETS_RESOURCE_RESOLVER</param-name>
    <param-value>com.avalanche.jsf.MyResourceResolver</param-value>
</context-param>
<context-param>
    <param-name>javax.faces.STATE_SAVING_METHOD</param-name>
    <param-value>client</param-value>
</context-param>
<context-param>
    <param-name>org.apache.myfaces.AUTO_SCROLL</param-name>
    <param-value>true</param-value>
</context-param>
<context-param>
    <param-name>facelets.DEVELOPMENT</param-name>
    <param-value>true</param-value>
</context-param>
<context-param>
    <param-name>facelets.RECREATE_VALUE_EXPRESSION_ON_BUILD_BEFORE_RESTORE</param-name>
    <param-value>false</param-value>
</context-param>

<filter>
    <filter-name>facesExtensionsFilter</filter-name>
    <filter-class>org.apache.myfaces.webapp.filter.ExtensionsFilter</filter-class>
    <init-param>
        <param-name>uploadMaxFileSize</param-name>
        <param-value>1g</param-value>
    </init-param>
</filter>
<filter-mapping>
    <filter-name>facesExtensionsFilter</filter-name>
    <servlet-name>faces</servlet-name>
</filter-mapping>
<filter-mapping>
    <filter-name>facesExtensionsFilter</filter-name>
    <url-pattern>/faces/myFacesExtensionResource/*</url-pattern>
</filter-mapping>

0 个答案:

没有答案