Tabela de conteúdos

Mensagens de Aviso

A arquitetura suporta a exibição de mensagens para os usuários através da classe MensagemAviso. Esta classe possui os seguintes atributos:

Atributo Descrição
Sistema Sistema do qual a mensagem faz parte
SubSistema SubSistema do qual a mensagem faz parte
Código Código da mensagem de aviso
Classe Constante Classe que contém a constante que representa a mensagem.
Tipo Tipo de mensagem (Erro, Aviso, Informação).
Mensagem Texto da mensagem de aviso.

Tipos de Mensagem

Mensagens Cadastradas

As mensagens de aviso podem ser cadastradas no banco de dados através do SIGAdmin, no link Config. do Sistema → Mensagens de Aviso → Inserir. Elas são exibidas ao usuário através do método addMensagem(), que recebe como parâmetro o código da mensagem e um conjunto opcional de parâmetros, para formatação da mensagem no estilo String.format.

Os códigos das mensagens ficam em classes com constantes, como por exemplo, a classe br.ufrn.arq.mensagens.MensagensArquitetura. Cada subsistema deverá ter sua própria classe de constantes para mensagens. Assim, existem classes como MensagensAlmoxarifado, MensagensBiblioteca, MensagensDap, etc.

Exemplo (JSF)

addMensagem(MensagensArquitetura.OPERACAO_SUCESSO); // Operação realizada com sucesso
addMensagem(MensagensArquitetura.CADASTRADO_COM_SUCESSO, "Componente curricular"); // %s cadastrado com sucesso

Exemplo (Struts)

addMensagem(request, MensagensArquitetura.OPERACAO_SUCESSO); // Operação realizada com sucesso
addMensagem(request, MensagensArquitetura.CADASTRADO_COM_SUCESSO, "Componente curricular"); // %s cadastrado com sucesso

Mensagens em ActionForms

Dentro do método validade pode-se usar o método addMensagem(). O problema é que o método validate() de ActionForm, retorna um objeto ActionErrors. Retornar um objeto ActionErrors vazio fará com que a validação não funcione. Assim, o método validade deverá, obrigatoriamente, retornar errors(req).

O método errors irá verificar se houve informação de erros usando o addMensagem(). Se houver, retorna um ActionErrors com uma mensagem vazia, apenas para que a validação funcione. Se não houver, retorna um ActionErrors vazio.

Exemplo

public ActionErrors validate(ActionMapping mapping, HttpServletRequest req) {
 
   if (...) {
      addMensagem(ClasseMensagens.MENSAGEM_INFORMADA);
   }
 
   // ...
 
   return errors(req);
}

Mensagens por Ajax

Às vezes, as mensagens de erro são geradas através de ações Ajax, de forma que o tratamento de erros normal não funciona. Para exibir mensagens de erro através de Ajax, é necessário utilizar o método a seguir:

É necessário também incluir na página a JSP /WEB-INF/jsp/include/errosAjax.jsp.

Atenção: Esses métodos são utilizados em casos de uso com RichFaces, portanto não funcionam com Struts.

Mensagens em Classes de Domínio

Em classes de domínio que implementam a interface Validatable, é possível adicionar mensagens através da classe ListaMensagens. Esta classe possui métodos para adicionar mensagens de todos os tipos especificados e ainda possibilita adicionar mensagens cadastradas no banco através do método addMensagem().

ListaMensagens lista = new ListaMensagens();
lista.addMensagem(MensagensArquitetura.CAMPO_OBRIGATORIO_NAO_INFORMADO);

Mensagens em NegocioException

Crie uma lista de mensagens contendo as mensagens e dispare a exceção passando-a como parâmetro para o construtor. No managed bean ou action onde a exceção for tratada, chamar o método addMensagens(), passando como parâmetro a lista de mensagens encapsulada na exceção.

// Para disparar a exceção
ListaMensagens lista = new ListaMensagens();
lista.addMensagem(...);
throw new NegocioException(lista);
 
// Para tratar a exceção
try {
   /* ... */
} catch(NegocioException e) {
   addMensagens(e.getListaMensagens());
}

Mensagens em JSPs

Para exibir uma mensagem em uma JSP, pode-se utilizar a EL Function sf:mensagem(), passando como parâmetro a classe e a constante da mensagem. Por exemplo:

${ sf:mensagem('MensagensArquitetura.OPERACAO_SUCESSO') }

Atenção: não é necessário colocar o pacote. A classe informada será buscada nos pacotes informados em pacotes_mensagens.properties.

Plano de Testes

Sistema: SIGAdmin

Usuário: david, gleydson

Links:

  1. Config. do Sistema → Mensagens de Aviso → Inserir
  2. Config. do Sistema → Mensagens de Aviso → Listar/Alterar

Descrição

Logar no SIGAdmin e ir ao cadastro de mensagens de aviso. Testar o cadastro e a listagem de mensagens. Verificar se estão funcionando e se estão dentro dos padrões especificados.