Некоторые важные моменты:
1. Вы можете использовать <rich:modalPanel>
для определения всплывающего окна подтверждения. Во всплывающем окне подтверждения кнопка OK будет вызывать бины doFinalAction()
<rich:modalPanel id="confirmPopUp" width="350" height="100">
<f:facet name="header"> Confirm popup</f:facet>
<a4j:commandButton value="OK" action="#{bean.doFinalAction}" />
<br />
<a4j:commandButton value="Close" onclick="#{rich:component('confirmPopUp')}.hide()"/>
</rich:modalPanel>
2. Вы можете использовать <a4j:jsFunction>
, чтобы определить функцию javascript, которая будет вызывать метод bean-компонентов, чтобы проверить, требуется ли показ поля подтверждения. Этот метод отвечает за установку логического флага (bean.requireConfirm
) в значение true, если требуется подтверждение. В противном случае выполните doFinalAction()
.
<a4j:jsFunction name="checkRequireConfirm"
action="#{bean.checkRequireConfirm}"
oncomplete=" if (#{bean.requireConfirm}) {#{rich:component('confirmPopUp')}.show()}">
</a4j:jsFunction>
Отметьте bean.requireConfirm
в атрибуте oncomplete
. Покажите всплывающее окно подтверждения, если оно истинно.
3. Добавьте обработчик событий onclick
к <h:selectBooleanCheckbox>
, который вызывает JS checkRequireConfirm()
, определенный в (2), если флажок не установлен
<h:selectBooleanCheckbox onclick="if (!this.checked){checkRequireConfirm()}"/>