Я проверил вашу проблему в моей среде и должен сказать, что она работает для меня, хотя я внес некоторые незначительные изменения.
Сначала я создал страницу композиции в моей папке /WEB-INF/template/
:
<body>
<ui:composition>
<p:menubar>
<p:menuitem id="signup" value="signup" label="Sign Up" action="goSignUp" ajax="false"/>
</p:menubar>
<h:commandButton id="signup2" value="signup2" label="Sign Up" action="goSignUp" />
</ui:composition>
</body>
И после этого я вставил его в мой .xhtml файл:
<f:view>
<h:body>
<h:form>
<ui:include src="/META-INF/template/navbar.xhtml" />
</h:form>
</h:body>
</f:view>
Все отлично работает.
Возможно, вы заметили атрибут ajax = "false" , установленный для тега <p:menuitem>
. Это значение имеет значение true по умолчанию и останавливает реализацию JSF для выполнения жизненного цикла по умолчанию. Установив значение false, вы получите обычное поведение JSF.
Надеюсь, это помогло, повеселись!