Quando coloquei CDI na tela de login, ela parou de funcionar. Vi que o meu LoginBean não estava anotado com @ViewScoped. O detalhe é que venho desde o primeiro treinamento.
Quando coloquei CDI na tela de login, ela parou de funcionar. Vi que o meu LoginBean não estava anotado com @ViewScoped. O detalhe é que venho desde o primeiro treinamento.
Oi Paulo
Poste aqui o código para nós darmos uma olhada, por favor.
Abraço!
Não sei se o meu post foi claro, mas já está funcionando, ok? Apenas registrei a observação caso outro aluno passe pelo mesmo problema. Abraço,
package br.com.caelum.livraria.bean;
import java.io.Serializable;
import javax.faces.application.FacesMessage;
import javax.faces.context.FacesContext;
import javax.faces.view.ViewScoped;
import javax.inject.Named;
import br.com.caelum.livraria.dao.UsuarioDAO;
import br.com.caelum.livraria.modelo.Usuario;
import br.com.caelum.livraria.util.Constantes;
/**
* @author paulo.gregorio
*
*/
@Named
@ViewScoped
public class LoginBean implements Serializable {
private static final long serialVersionUID = 363194016432589240L;
private Usuario usuario = new Usuario();
public String efetuarLogin() {
System.out.println("Validando usuário: " + usuario);
Usuario usuarioValidado = new UsuarioDAO().existeUsuario(this.usuario);
FacesContext contexto = FacesContext.getCurrentInstance();
if (usuarioValidado != null) {
System.out.println("Usuário válido!");
// Adicionando o usuário à sessão para autorizações futuras
contexto.getExternalContext().getSessionMap().put(Constantes.USUARIO_LOGADO,
usuarioValidado);
return "livro?faces-redirect=true";
}
contexto.addMessage(null, new FacesMessage("Usuário e senha inválidos! :/"));
contexto.getExternalContext().getFlash().setKeepMessages(true);
return "login?faces-redirect=true";
}
public String desconectar() {
FacesContext.getCurrentInstance().getExternalContext().getSessionMap().remove(Constantes.USUARIO_LOGADO);
return "login?faces-redirect=true";
}
public Usuario getUsuario() {
return usuario;
}
}