Fiz o mesmo exemplo em outro programa, se eu redireciono para mesma pagina a menssagem do flash aparece, porem se redireciono para o form de login por exemplo não aparece nada.
minha controller:
@RequestMapping(value = "/cadastro", method = RequestMethod.POST)
public ModelAndView gravar(@Valid Usuario usuario, BindingResult result, RedirectAttributes redirectAttributes) {
if (result.hasErrors()) {
System.out.println(result.getAllErrors());
System.out.println(usuario);
return cadastro(usuario);
}
List<Usuario> emailBd = usuarioDAO.find();
System.out.println(emailBd);
// System.out.println(usuario);
for (Usuario usuariobd : emailBd) {
if (usuariobd.getEmail().equals(usuario.getEmail())) {
redirectAttributes.addFlashAttribute("sim", "Usuario já cadastrado");
return new ModelAndView("redirect:/usuario/cadastro");
}
}
if (usuario.getEmail().equals("")) {
System.out.println("vazio");
redirectAttributes.addFlashAttribute("sim", "Preencha os campos");
return new ModelAndView("redirect:/usuario/cadastro");
} else {
usuarioDAO.gravar(usuario);
redirectAttributes.addFlashAttribute("nao", "Cadastrado com sucesso");
return new ModelAndView("redirect:/loginForm");
}
}
e a view
<body>
<c:if test="${not empty nao}">
<div class="sucess">${nao}</div>
</c:if>
<div class="row">
<div class="col-sm-6" id="login">
<h1>Já possui acesso?</h1>
<form:form method="Post" commandName="usuario">
<div class="form-group">
<label><span class="glyphicon glyphicon-user"></span>
Login</label> <input autofocus="autofocus" name="username" type="text"
class="form-control" placeholder="Digite o e-mail"
style="height: 50px" />
<form:errors path="username"></form:errors>
</div>
<div class="form-group">
<label><span class="glyphicon glyphicon-eye-open"></span>
Senha</label> <input type="password" name="password" class="form-control"
placeholder="Digite a senha" style="height: 50px">
</div>
<button id="btnLogin" type="submit" class="btn btn-success">
Logar</button>
<a id="btnCadastro" type="submit" class="btn btn-info"
href='<c:url value="/usuario/cadastro" />'> Cadastrar</a>
</form:form>
</div>
</div>
</div>
</body>