我们正在使用PrimeFaces 5.我们使用以下方式在对话框中显示消息:
RequestContext.getCurrentInstance().showMessageInDialog(new FacesMessage("This is a message"));
显示此对话框后,我们希望对话框在3秒后自动关闭。怎么做到这一点?
答案 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();