Po naciśnięciu przycisku Save
, dane z actionsDialog powinny zostać zatwierdzone. Jeśli wymagana informacja zostanie wprowadzona i będzie ważna, zostanie wyświetlone drugie okno dialogowe o nazwie reasonDialog.Jak wywołać args.validationFailed w PrimeFaces oncomplete
Sprawdzanie poprawności obiektu zapisane przez JSF odbywa się za pomocą metody zwracającej listę komunikatów o błędach. I przypadek sprawdzania poprawności nie powiedzie się komunikaty o błędach są wyświetlane z FacesMessage. Jak mam zrobić w objectsBean.validate
, aby uruchomić klauzulę if else z oncomplete
?
<p:dialog id="actionsDialog" widgetVar="actionsDialog" dynamic="true"
resizable="false" width="800" modal="true">
<ui:include src="/WEB-INF/flows/custom-flow/genericObject.xhtml"/>
<f:facet name="footer">
<p:commandButton value="Save" update="msgs"
oncomplete="if (args.validationFailed) {reasonDialog.hide()} else {reasonDialog.show()}"
actionListener="#{objectsBean.validate}"/>
<p:commandButton value="Cancel" immediate="true" oncomplete="actionsDialog.hide()" />
</f:facet>
</p:dialog>
Albo to zrobię, albo wyrzucę wyjątek, cykl życia JSF będzie kontynuowany, aktualizuje wartości modelu i wywołuje aplikację. Czy istnieje sposób na zatrzymanie renderowania strony w przypadku niepowodzenia sprawdzania poprawności? – MounirReg
@Mounir: To nie jest normalne zachowanie. Po prostu zadaj pytanie zgodnie z instrukcjami pod adresem http://stackoverflow.com/tags/jsf/info, abyśmy mogli obserwować, debugować i usuwać problem, na wypadek gdybyś nie wykonywał tego zadania. – BalusC