В настоящее время я работаю над приложением, которое использует JSF 2.2 вместе с Primefaces, работающими на Wildfly 11.
Ошибка среды: Primefaces 6.2.5
Рабочая среда: Primefaces 6.2.2
Ожидаемое поведение:
Щелкнув по элементу контекстного меню, вы должны вызвать рендеринг панели инструментов на экране. Это работало в предыдущих версиях.
Фактическое поведение:
Когда я нажимаю на пункт меню на нашем экране, он запускает повторную визуализацию панели инструментов. Более того, контекстное меню используется как составной компонент на экране. Но пункт контекстного меню генерирует следующую ошибку.
javax.el.MethodNotFoundException: /xhtml/screen/toolbar.xhtml.
listener="#{cc.attrs.someClass.onPreRenderToolbar}": Method not found: class
customComponent.onPreRenderToolbar(javax.faces.event.ComponentSystemEvent)
Проблема заключается в том, что он инициирует метод onPreRenderToolbar для «someClass», а не для самой панели инструментов (этого не произошло для PF 6.2.2 и более ранних версий).
XHTML:
<h:form id="form" rendered="#{not (param['toolbar'] eq 'false') }">
<p:menubar id="menuBar" model="#{cc.attrs.toolbar.model}">
<c:if test="#{not empty cc.attrs.toolbar}" >
<f:event type="preRenderComponent" listener="
{cc.attrs.toolbar.onPreRenderToolbar}"/>
</c:if>
</p:menubar>
</h:form>
Контекстное меню находится внутри someClass (который по сути является формой), а панель инструментов находится за пределами этого компонента.
У кого-то есть какие-либо замечания / предложения относительно того, что может быть изменено между этими двумя версиями, что может вызвать эту проблему?