Pessoal
Estou trabalhando em um sistema e utilizando o vRaptor 2
O sistema consiste em uma série de cadastros, que irão popular uma base de dados que depois terá outras finalidades.
Mostro uma listagem, com um botao adicionar. Até ai OK. Clicando no botão, abre o formulário, e adiciona perfeito, voltando pra listagem.
No view.properties:
administracao.salvarPerfil.ok = redirect:administracao.listaPerfil.logic
Ai veio a idéia de quando mostrar a listagem, aparecer uma mensagem indicando que aquela entidade foi registrada com sucesso (nada de sensacional, mas ai que ta o problema rs).
No AdministracaoLogic criei uma variavel (e respectivos getters&setters)
@In(scope=ScopeType.FLASH, required=false)
@Out(scope=ScopeType.FLASH)
private String mensagem;
public void salvarPerfil(Perfil perfil){
daoFactory.beginTransaction();
daoFactory.getPerfilDAO().adiciona(perfil);
daoFactory.commit();
this.setMensagem("Perfil "+perfil.getNome()+" cadastrado com sucesso.");
}
Legal… volta pra listagem pelo redirecionamento do view.properties e mostra a mensagem.
Se eu clicar no menu listar, deve aparecer a listagem sem a mensagem, mas ai que ta o problema, a mensagem fica aparecendo sempre, até eu subsituir por outra.
Em outro logic tenho a mesma variável, para mostrar a mensagem de cadastro de outro tipo de entidade. Se no menu clico para listar os usuários por exemplo, aparece a listagem com essa mensagem já.
Tentei de tudo.
Uma opção que achei que funcionaria é a seguinte: todos meus logics são interceptados por um AutorizadorInterceptor.
No AutorizadorInterceptor, criei a mesma variável com scopeType=FLASH, e após o flow.execute(), faço:
this.setMensagem("");
Mas na próxima tela continua aparecendo a mensagem.
Alguém consegue me ajudar a resolver esse problema ou me dar dicas de outra forma de apresentar essa mensagem?
Desde já agradeço a ajuda de todos.
Abraços