Сегодня я столкнулся с точно такой же проблемой с PrimeFaces 5.1. В моем случае у меня не было вложенных форм, и я уже устанавливал атрибут process
для p:commandButton
с элементами формы, которые я хотел обработать. Однако это еще не сработало.
«Решением» было добавить @this
в список компонентов для обработки, например:
<p:commandButton process="myFormField1 myFormField2 @this">
Без @this
(что обычно не требуется, поскольку сама кнопка не должна обрабатываться / проверяться). Я не нашел способа заставить что-либо из этого работать внутри композита:
<p:commandButton action="#{bean.myAction}"...>
<p:commandButton type="button">
с вложенным <p:ajax event="click" action="#{bean.myAction}"...>
<p:commandButton type="button" onclick="myAction()">
со связанными <p:remoteCommand name="myAction" action="#{bean.myAction}">
После отладки приложения я увидел, что этапы проверки и обновления модели были выполнены правильно, но затем на этапе вызова приложения событие в очереди отсутствовало и, следовательно, не было выполнено никаких действий. На самом деле, я могу указать все, что мне нравится, в значениях атрибутов action
и actionListener
, равных <p:commandButton>
, без каких-либо жалоб PrimeFaces или JSF.
Вместо этого они работают так, как должны, но у вас нет частичной обработки, поэтому они не могут быть жизнеспособным решением:
<p:commandButton action="#{bean.myAction}" ajax="false"...>
<p:commandButton type="button"...>
с вложенным <f:ajax event="click" action="#{bean.myAction}"...>
Это должна быть ошибка PrimeFaces.