Primefaces showMessageInDialog在3秒后自动关闭

时间:2014-09-15 13:20:18

标签: primefaces

我们正在使用PrimeFaces 5.我们使用以下方式在对话框中显示消息:

RequestContext.getCurrentInstance().showMessageInDialog(new FacesMessage("This is a message"));

显示此对话框后,我们希望对话框在3秒后自动关闭。怎么做到这一点?

2 个答案:

答案 0 :(得分:1)

showMessageInDialog调用RequestContext后,在一定毫秒后执行当前打开的消息(PrimeFaces.dialog.DialogHandler.messageDialog)上的隐藏

所以完整的电话会是

RequestContext.getCurrentInstance().showMessageInDialog(new FacesMessage("This is a message"));

RequestContext.getCurrentInstance().execute("
    setTimeout(function({PrimeFaces.dialog.DialogHandler.messageDialog.hide()}
    ,3000)");// 3 seconds

注意1000毫秒= 1秒

答案 1 :(得分:0)

一个天真的解决方案,但它可以工作:

RequestContext.getCurrentInstance().showMessageInDialog(new FacesMessage());
new Thread(new Runnable() { 
    public void run() {
        Thread.sleep(3000);
        //close dialog here
    }
}).start();