如何在没有onclick事件的情况下显示richfaces模式窗口?

我正在尝试实现这样的模态窗口以向用户显示错误消息。 我有一个页面,其中包含供用户输入信息的表单,然后单击“提交”将其添加到数据库中。 如果数据库返回错误,我希望弹出模态窗口并显示错误消息。

唯一的问题是我不能弹出模态窗口,除非有某种onclick事件。 我尝试使用以下代码:

 

我们的想法是,如果出现错误,支持bean将呈现它,并且确实如此,但只有您单击“提交”并点击数据库并返回到表单再次单击“提交”之后。

理想情况下,如果backingBean.isError返回true,我希望在页面加载时弹出模态窗口,但我觉得我错过了让它发生的事情。 有任何想法吗?

使用showWhenRendered属性:

  

使用backbean和“错误标志”的另一种方法是使用FacesMessage

如果db返回错误,请添加新的FacesMessage

 try { (...) } catch (Exception e) { //If theres a error (db error, java error..) or a "throw new Exception()" (if your db error doesn't make a exception) add the message... FacesMessage facesMsg = new FacesMessage(FacesMessage.SEVERITY_ERROR, null, "Error message."); FacesContext.getCurrentInstance().addMessage(null, facesMsg); } 

并且正如org.life.java所说,使用showWhenRendered ,但使用facesContext.maximumSeveirity来显示错误消息

   or   

只有当至少有一条消息显示时,模态面板才会显示,并且它将是自动的,您只需要添加FacesMessage

消息可以是FacesMessage.SEVERITY_INFOFacesMessage.SEVERITY_WARNFacesMessage.SEVERITY_ERRORFacesMessage.SEVERITY_FATAL

你可以根据消息类型更改图标和标记,例如:

                     

此代码将显示带有“标题”和图标的模式,如(errorIcon) – 错误和标题下方的消息。