В моем веб-приложении JSF 1.2 у меня есть страница с <h:commandButton>
, которая вызывает метод действия для вспомогательного компонента. Это действие приведет к удалению/замене данных в базе данных, поэтому я хочу избежать любых ситуаций, когда пользователь случайно нажимает кнопку команды.
Я хотел бы реализовать простой "Вы уверены?" приглашение с параметрами «Да/Нет» или «ОК/Отмена» с использованием JavaScript. Я не силен в JavaScript и никогда раньше не смешивал JavaScript с JSF. Может ли кто-нибудь предоставить фрагмент кода, чтобы показать мне, как это реализовать?
Вот часть моей страницы JSP, где я объявляю командную кнопку:
<h:commandButton
id="commandButtonAcceptDraft"
title="#{bundle.tooltipAcceptDraft}"
action="#{controller.actionReplaceCurrentReportWithDraft}"
image="/images/checkmark.gif">
</h:commandButton>
РЕШЕНИЕ:
Решение, предоставленное BalusC, отлично сработало. Я также хотел упомянуть, что в качестве текста подсказки легко использовать текст из пакета ресурсов. На моей странице я загружаю пакет ресурсов с помощью такого элемента:
<f:loadBundle basename="com.jimtough.resource.LocalizationResources" var="bundle" />
<f:loadBundle>
должен быть внутри вашего <f:view>
. Затем я добавляю код, предоставленный BalusC, в свой элемент командной кнопки, но заменяю строку из моего пакета ресурсов на «Вы уверены?» текст примерно такой:
<h:commandButton
id="commandButtonAcceptDraft"
title="#{bundle.tooltipAcceptDraft}"
action="#{controller.actionReplaceCurrentReportWithDraft}"
image="/images/checkmark.gif"
onclick="return confirm('#{bundle.confirmationTextAcceptDraft}')">
</h:commandButton>
Строка в моем файле ресурсов на английском языке (просто текстовый файл с парами ключ/значение) выглядит так:
# text displayed in user prompt when calling confirm()
confirmationTextAcceptDraft=This will overwrite the current report and cannot be undone. Are you sure?