Нет смысла отправлять значение перед подтверждением, просто использовать его в confirmDialog
, поэтому можно использовать событие onclick
команды commandButton для изменения message="Is your name actually #{myBean.myName}?"
с использованием JavaScript.
проверьте этот код, он работает нормально:
<h:form id="myForm">
<p:growl id="msg" />
<p:inputText id="field" value="#{indexBacking.input}" widgetVar="fieldWv"/>
<p:commandButton id="cmd01" value="Create" onclick="showConfirm();"/>
<p:confirmDialog showEffect="fade" hideEffect="fade" id="confirmDialog" widgetVar="confirmDialogWv">
<f:facet name="message">
<div id="confirmMessage"></div>
</f:facet>
<p:commandButton value="Yes" styleClass="ui-confirmdialog-yes" icon="ui-icon-check" actionListener="#{indexBacking.sayHi()}" update="@form"/>
<p:commandButton value="No" type="button" styleClass="ui-confirmdialog-no" icon="ui-icon-close" onclick="PF('confirmDialogWv').hide();"/>
</p:confirmDialog>
<script type="text/javascript">
function showConfirm() {
PF('confirmDialogWv').show();
$('#confirmMessage').empty();
$('#confirmMessage').append("<p>Is your name actually [" + PF('fieldWv').jq.val() + "]?</p>");
}
</script>
</h:form>
обратите внимание, что я был вынужден отказаться от поведения и использовать p: verifyDialog в качестве стандартного диалога, чтобы сделать это.