Cara se voce estiver usando o richFaces voce pode usar a tag
rich:messages se voce estiver usando jsf sem componentes ricos utilize a tag <h:messages>
voce pode colocar essas mensagens no topo do seu formulario. soh um detalhe, qualquer excecao que der nos metodos do seu bean que voce quiser retornar uma mensagem de erro para o usuario, voce vai ter que adicionar no seu facesmessage
eu aconselho voce fazer algum util para adicionar essas mensagens jah que voce vai usar esse codigo em varios lugares da sua aplicacao. um exemplo de como voce faria para adicionar uma mensagem com severidade erro:
// voce pode alterar esses metodos por exemplo para receber um detalhe, se por acaso voce quiser exibi-los na sua pagina
/**
* <p>
* Enfileira uma <code>FacesMessage</code> global (nao associada a nenhum
* componente em particular) contendo o texto sumario especificado e o
* nivel de severidade <code>FacesMessage.SEVERITY_ERROR</code>.
*
* @param summary Texto sumario para esta mensagem.
*/
public final void error(final String summary) {
getFacesContext().addMessage(null,
new FacesMessage(FacesMessage.SEVERITY_ERROR, summary, null));
}
/**
* <p>
* Enfileira uma <code>FacesMessage</code> global associada a um
* componente especifico, contendo o texto sumario especificado e o
* nivel de severidade <code>FacesMessage.SEVERITY_ERROR</code>.
*
* @param component Componente ao qual a mensagem esta associada.
* @param summary Texto sumario da mensagem.
*/
public final void error(final UIComponent component,
final String summary) {
getFacesContext().addMessage(component.getClientId(getFacesContext()),
new FacesMessage(FacesMessage.SEVERITY_ERROR, summary, null));
getRequestMap().put("focus", component.getClientId(getFacesContext()));
}
/**
* <p>
* Enfileira uma <code>FacesMessage</code> global associada a um
* componente especifico, contendo o texto sumario especificado e o
* nivel de severidade <code>FacesMessage.SEVERITY_ERROR</code>.
*
* @param idComponente ID do componente ao qual a mensagem esta associada.
* @param summary Texto sumario da mensagem.
*/
public final void error(final String idComponente, final String summary) {
getFacesContext().addMessage(idComponente,
new FacesMessage(FacesMessage.SEVERITY_ERROR, summary, null));
getRequestMap().put("focus", idComponente);
}
ae no bean, voce teria um codigo ± assim:
} catch (Exception e) {
// TODO Tratar o erro, aqui soh estou exibindo uma mensagem para o usuario
AlgumUtil.getInstance().error(
"Ocorreu um erro na consulta por exemplo!");
}