Как отобразить диалоговое окно подтверждения (Primefaces) из компонента поддержки

У меня есть функция импорта, которая проанализирует XML-файл, содержащий информацию о версии документа, и сохранит его в базе данных. Если пользователь пытается загрузить уже существующую версию, мне нужно показать диалоговое окно подтверждения, например «Версия уже существует, вы хотите перезаписать ..?» хорошо, Отмена.

Я использую Mozarra 2.0.3, Prime Faces 2.2 RC2, Glass Fish 3, и я пытаюсь это сделать.

<h:form id="conDialog">
    <p:commandButton value="getConfirmMsg" update="conDialog" action="#{buttonBean.getConfirmMsg()}" 
        oncomplete="confirmation.show()"/>
    <p:growl id="messages1" globalOnly="true"/>
    <p:confirmDialog message="Version already exists. Do you want to override it?"
        rendered="#{buttonBean.showConfirm}"
        header="Version already exist" severity="alert" widgetVar="confirmation">
        <p:commandButton value="OK" update="messages1" oncomplete="confirmation.hide()"
            action="#{buttonBean.overrideVersion}" />
        <p:commandButton value="Cancel" onclick="confirmation.hide()" type="button" />
    </p:confirmDialog>
</h:form>

BackingBean

@ManagedBean
@RequestScoped
public class ButtonBean {

    boolean showConfirm = false;

    public boolean isShowConfirm() {
        return showConfirm;
    }

    public void setShowConfirm(boolean showConfirm) {
        this.showConfirm = showConfirm;
    }

    public void overrideVersion() {
        System.out.println("Version alrady exists...Overriding...");
        FacesMessage msg = new FacesMessage("Action is successful");
        FacesContext.getCurrentInstance().addMessage(null, msg);
    }

    public void getConfirmMsg() {
        System.out.println("Inside getConfirmMsg()....");
        showConfirm = true;
        System.out.println("showConfirm: " + showConfirm);
    }
}

Когда я нажимаю «ОК», действие не запускается. Есть ли ошибка в приведенном выше коде?

7
задан neni 16 May 2011 в 11:52
поделиться