p:commandButton/a4j:commandButton не обновляет другие компоненты после установки omnifaces1.14.1
У меня есть EAR-приложение (с большим количеством модулей), которое было собрано с jsf 2.0, primefaces 6.1 и richfaces 4.3.7 (я не знаю, почему они смешали prime и rich), и это приложение не использует CDI. Приложение работало хорошо, пока я не решил установить http://omnifaces.org/ v1.14.1, потому что мне нужно использовать Messages.addFlashInfo.
Сообщения хорошо работают с омнифасами, я также решил изменить свою h: form на o: form, и я изменил свои web.xml и Face -config.xml, чтобы использовать некоторые вещи из омнифайлов, такие как:
web.xml
<context-param>
<param-name>org.omnifaces.EXCEPTION_TYPES_TO_UNWRAP</param-name>
<param-value>javax.ejb.EJBException,javax.persistence.RollbackException</param-value>
</context-param>
<context-param>
<param-name>org.omnifaces.EXCEPTION_TYPES_TO_IGNORE_IN_LOGGING</param-name>
<param-value>javax.faces.application.ViewExpiredException</param-value>
</context-param>
Лица-config.xml
<factory>
<exception-handler-factory>org.omnifaces.exceptionhandler.FullAjaxExceptionHandlerFactory</exception-handler-factory>
</factory>
<factory>
<exception-handler-factory>org.omnifaces.exceptionhandler.FacesMessageExceptionHandlerFactory</exception-handler-factory>
</factory>
<lifecycle>
<phase-listener>ec.com.hdlv.sishos.web.utilitario.ViewPhaseListener</phase-listener>
<phase-listener>org.omnifaces.eventlistener.ResetInputAjaxActionListener</phase-listener>
</lifecycle>
Проблема возникает, когда я нажимаю любую кнопку p:commandButton/Link или a4j:commandButton/Link. Они не обновляют и не отображают другие компоненты, если только p: commandButton не имеет свойства ajax="false".
Например, у меня есть один из p:commandLink, как это:
<o:form id="#{idForm}" onKeyPress="return disableEnterKey(event)"
useRequestURI="true" enctype="multipart/form-data">
<p:panel id="cargosResultadoPnl"
header="#{cargosDataManager.consultaCargos? 'Listado de cargos': 'Listado de devoluciones de cargos'}">
<p:outputPanel styleClass="botonD"
rendered="#{!cargosDataManager.modoConsulta}">
<p:commandLink value="Nuevo" styleClass="nuevoD" title="Nuevo cargo"
action="#{cargosController.nuevoCargo()}" process="@this"
update="cargosResultadoPnl" />
</p:outputPanel>
<p:spacer width="5" />
<p:dataTable value="#{cargosDataManager.listaCargos}"
emptyMessage="#{cargosDataManager.consultaCargos? 'No existen cargos para el paciente': 'No existen devoluciones de cargos para el paciente'}"
paginator="true" paginatorPosition="top" var="cargo"
style="width:100%; margin-top:5px;" id="dtCargos"
rowKey="#{cargo.registerDate}" selectionMode="single"
selection="#{cargosDataManager.cargo}" rowIndexVar="numRow" rows="5"
editable="true" editMode="cell" styleClass="myTable"
paginatorTemplate="{CurrentPageReport} {FirstPageLink} {PreviousPageLink} {PageLinks} {NextPageLink} {LastPageLink}">
....columns
</p:dataTable>
</p:panel>
</o:form>
В приведенном выше примере есть @ViewScope для managedBean cargosController и @SessionScope для managedBean cargosDataManager (из javax.faces.bean)
Это метод void, который я использую из p:commandLink:
public void nuevoCargo() {
superaTopeCobertura(sumaValorNetoCargosMemoria().add(sumaValorNetoHonorariosCargosMemoria()));
verificarDisponibilidadConexionOdoo();
inicializarCargo();
agregarCargo();
}
Не отображается ошибка ни консоли браузера, ни сервера. Я также принимаю во внимание эту инструкцию, но она не работает.
Приложение работает в Jboss EAP 6.4 с Java 8.
В чем может быть ошибка? Если вам нужна дополнительная информация, пожалуйста, дайте мне знать. Спасибо