Я только что перенес какое-то веб-приложение среднего размера с JSF 1.2 / MyFaces на JSF 2.0 / Mojarra.Помимо некоторых пользовательских компонентов, которые я реализовал, кажется, что все работает, за исключением JSCookMenu от Tomahawk (да, у меня есть Tomahawk, который является библиотекой от Apache, и все еще хочу использовать Mojarra - но я понял, что не должно бытьлюбая большая проблема).Я заменил myfaces-api.jar и myfaces-impl.jar соответствующими jsf-api.jar и jsf-impl.jar и вынул из web.xml столько параметров и фильтров MyFaces, сколько возможно (некоторые из них были необходимы дляостаются, потому что я все еще использую Томагавк).Я также обновил Tomahawk до 1.1.11 для JSF2.
JSCookMenu приложения рендерится просто отлично, но не вызывает никаких действий при нажатии на пункты меню.У меня есть некоторые t: navigationMenuItem, атрибут действия которых связан с результатом вface-config.xml, который должен загрузить новый идентификатор представления, и еще некоторые t: navigationMenuItem, атрибут actionListener которого связан с методом bean (пункт меню «Выход», дляпример).Ни один из них не работает, код actionListener из моего компонента даже не вызывается.
Я даже не уверен, как это исследовать, кто-нибудь имел представление о том, как это можно решить?Я надеюсь, что что-то в web.xml может помочь.
Навигационные примеры правильно написаны в face-config.xml, они работали на 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>