Here you go. We include this file in every page
<%@ taglib uri="http://java.sun.com/jsf/html" prefix="h"%> <%@ taglib uri="http://java.sun.com/jsf/core" prefix="f"%> <%@ taglib uri="http://myfaces.apache.org/tomahawk" prefix="t"%> <%@ taglib uri="http://c2glogistics.com/cms" prefix="cms"%> <h:panelGrid styleClass="group" columns="2" cellpadding="2" cellspacing="0" width="100%" columnClasses="buttonCol, leftAlignCol" rowClasses="vertAlignTop" rendered="#{! empty facesContext.maximumSeverity}" > <h:graphicImage value="#{PageMessages.messageImage}" style="float: left; vertical-align: top;" /> <h:panelGrid columns="1" cellpadding="2" cellspacing="2" columnClasses="leftAlignCol" rowClasses="vertAlignTop" width="100%"> <h:outputText value="#{PageMessages.messageHeader}" escape="false" rendered="#{PageMessages.renderMessage}"/> <h:messages errorClass="errorMessage" infoClass="infoMessage" layout="table" globalOnly="true" showDetail="false" showSummary="true"/> </h:panelGrid> </h:panelGrid> It is backed up by a request-scoped backing bean which knows how to place message-specific images into the page import javax.faces.application.FacesMessage; import javax.faces.application.FacesMessage.Severity; import org.apache.commons.lang.StringUtils; import cms.beans.Messages; public class PageMessages extends AbstractUIBean { private static final long serialVersionUID = -6479897299239746841L; private static final String BEAN_NAME = PageMessages.class.getName(); private String messageHeader; private String messageImage; private Severity severityLevel; public PageMessages() { messageHeader = null; // See if there are messages queued for the page severityLevel = getFacesContext().getMaximumSeverity(); if (null != severityLevel) { getLogger().debug("Severity Level Trapped: level = '" + severityLevel.toString() + "'"); if (severityLevel.compareTo(FacesMessage.SEVERITY_ERROR) == 0) { messageHeader = Messages.getString("PAGE_MESSAGE_ERROR"); messageImage = "resources/warning.gif"; } else if (severityLevel.compareTo(FacesMessage.SEVERITY_INFO) == 0) { messageHeader = null; messageImage = "resources/information.gif"; } else if (severityLevel.compareTo(FacesMessage.SEVERITY_WARN) == 0) { messageHeader = null; messageImage = "resources/warning.gif"; } else if (severityLevel.compareTo(FacesMessage.SEVERITY_FATAL) == 0) { messageHeader = Messages.getString("PAGE_FATAL_ERROR"); messageImage = "resources/stop.gif"; } } else { getLogger().debug("Severity Level Trapped: level = 'null'"); } } public Boolean getRenderMessage() { return new Boolean(StringUtils.isNotBlank(getMessageHeader())); } /* * Local Methods */ /* * Overrides */ public String getBeanName() { return BEAN_NAME; } /* * Actions */ /* * Listeners */ /* * Validators */ /* * Accessors */ public String getMessageHeader() { return messageHeader; } public String getMessageImage() { return messageImage; } } -----Original Message----- From: Aleksei Valikov [mailto:[EMAIL PROTECTED] Sent: Friday, May 26, 2006 6:19 AM To: MyFaces Discussion Subject: Re: Handling and displaying action errors Hi. > The action method bindings of the backing beans process the request > and can determine the next view through returning a navigation > control. Null re-displays the current view so you can set up logic > which goes > > If (someBusinessLogic()) { > displayConfirmationMessage(); > return myNextView; > } else { > displayErrorMessage(); > return null; > } > > We have a message area included on each JSP page which processes > actions and inform the user of processing outcomes by using the > Message interface and sending warnings, errors and info messages. Each > of our backing beans inherits the following > > protected void setInfoMessage(String msg) { > getFacesContext().addMessage(null, new > FacesMessage(FacesMessage.SEVERITY_INFO, msg, null)); > } > > protected void setWarnMessage(String msg) { > getFacesContext().addMessage(null, new > FacesMessage(FacesMessage.SEVERITY_WARN, msg, null)); > } > protected void setErrorMessage(String msg) { > getFacesContext().addMessage(null, new > FacesMessage(FacesMessage.SEVERITY_ERROR, msg, null)); > } Well, this looks fine. So you just queue a message for the null client id? How do you display messages for null within the mage? Could you please post the corresponding code for the message area? Thank you. Bye. /lexi

