Another way to do this without using backbean and the “error flag” is to use FacesMessage
Example
If db returns an error, add a new FacesMessage
try {
(...)
}
catch (Exception e) {
FacesMessage facesMsg = new FacesMessage(FacesMessage.SEVERITY_ERROR, null, "Error message.");
FacesContext.getCurrentInstance().addMessage(null, facesMsg);
}
org.life.java, showWhenRendered, facesContext.maximumSeveirity
<rich:modalPanel id="messagePanel" showWhenRendered="#{facesContext.maximumSeverity != null}">
<rich:messages .../> or <h:messages .../>
</rich:modalPanel>
, , , FacesMessage
FacesMessage.SEVERITY_INFO, FacesMessage.SEVERITY_WARN, FacesMessage.SEVERITY_ERROR FacesMessage.SEVERITY_FATAL
, :
<rich:modalPanel id="messagePanel" showWhenRendered="#{facesContext.maximumSeverity != null}">
<h:panelGrid columns="2" rendered="#{facesContext.maximumSeverity.ordinal == 0}">
<h:graphicImage value="/images/icons/mini_info.gif"/>
<h:outputText value="Information" style="color: blue; font-size: 16px;"/>
</h:panelGrid>
<h:panelGrid columns="2" rendered="#{facesContext.maximumSeverity.ordinal == 2}">
<h:graphicImage value="/images/icons/mini_error.gif"/>
<h:outputText value="Error" style="color: red; font-size: 16px;"/>
</h:panelGrid>
<rich:messages id="mpMessage1">
<f:facet id="mpErrorMarker" name="infoMarker">
<h:outputText value="- "/>
</f:facet>
<f:facet id="mpErrorMarker" name="errorMarker">
<h:outputText value="- "/>
</f:facet>
</rich:messages>
</rich:modalPanel>
"" , (errorIcon). .