Minimaler Beispieldialog:
<p:dialog header="Test Dialog"
widgetVar="testDialog">
<h:form>
<p:inputText value="#{mbean.someValue}"/>
<p:commandButton value="Save"
onsuccess="testDialog.hide()"
actionListener="#{mbean.saveMethod}"/>
</h:form>
</p:dialog>
Ich möchte in der Lage sein, die mbean.saveMethod irgendwie daran zu hindern, den Dialog zu schließen, wenn es ein Problem gab, und eine Nachricht nur durch Knurren auszugeben. Dies ist ein Fall, in dem ein Validator nicht hilft, da nicht festgestellt werden kann, ob someValue gültig ist, bis ein Speicher an einen Back-End-Server gesendet wird. Derzeit mache ich dies mit dem sichtbaren Attribut und zeige es auf ein boolesches Feld in mbean. Das funktioniert, aber es macht die Benutzeroberfläche langsamer, da das Auf- oder Abblättern des Dialogfelds das Drücken des Servers erfordert.