Обнаружена проблема.
Каждая веб-страница определяет содержимое шаблона. В этом шаблоне есть раздел «Контент», который содержит 2 <h:form>
. Один рендерер, когда пользователь не вошел в систему. Другая отображается при правильном входе пользователя в систему.
На каждой странице, которая переопределяет содержимое (когда пользователь входит в систему), у меня был второй раздел <h:form>
. Кажется, что action
из <p:remoteCommand>
не справляется так хорошо, в то время как <p:button>
. Я просто удалил эту форму на каждой странице, и моя проблема была решена.
Мой шаблон (часть контента)
<div id="content" style="padding: 10px">
<h:form rendered="#{!ProviderLogin.m_User.m_bLogged}">
<h:button value="Connexion" outcome="/Gestion/Connexion.xhtml"/>
</h:form>
<h:form id="formContent" rendered="#{ProviderLogin.m_User.m_bLogged}">
<ui:insert name="content" >
<ui:include src="content.xhtml" />
</ui:insert>
</h:form>
</div>
Одна страница, которая переопределяет часть контента (со второй формой, которая далая ошибаюсь)
<h:body>
<ui:composition template="../Template/template.xhtml">
<ui:define name="content">
<h:form id="formInterventions">
PAGE CONTENT
</h:form>
</ui:define>
</ui:composition>
</h:body>
На той же странице, которая переопределяет часть содержимого (без 2-й формы), тогда мой action
из <p:remoteCommand>
работает!
<h:body>
<ui:composition template="../Template/template.xhtml">
<ui:define name="content">
PAGE CONTENT
</ui:define>
</ui:composition>
</h:body>
Iтакже предоставьте вам эту информацию:
я использую update
некоторых элементов управления, таких как эта витрина:
https://www.primefaces.org/showcase/ui/ajax/poll.xhtml
Вам необходимо указать id
элемента управленияВы хотите update
Когда вы используете <h:form>
, иногда вам также необходимо указать id
из form
следующим образом:
update="formID:controlID"
Из-за этого<h:form>
определенный в моем шаблоне (который я забыл), он не работал, потому что я совсем не ожидал этого и не дал этой форме идентификатор, поэтому в основном был задан идентификатор по умолчанию (j_idt27).
Это означает, что моя update
функция не смогла найти указанный контрольный идентификатор