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.
Você está vendo a versão anterior da nova experiência da Alura que estamos preparando para você. Em breve, ela ganha uma identidade visual novinha totalmente pensada em potencializar seus estudos!
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;
}
}