Saludos
Estoy haciendo un proyecto con JSF y Primefaces. He logrado realizar el registro y login de usuario pero cuando selecciono "ver perfil" no se visualizan sus datos(nombre, apellidos, email). Dejo el código que llevo:
Perfil de usuario
<?xml version='1.0' encoding='UTF-8' ?>
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml"
xmlns:ui="http://xmlns.jcp.org/jsf/facelets">
<body>
<ui:composition template="./../WEB-INF/Template2.xhtml">
<ui:define name="content">
<h3>Nombre de usuario#{loginBean.usuarioAutenticado.nombre}</h3>
<p>Email #{loginBean.usuarioAutenticado.email}</p>
<p>Fecha de nacimiento #{loginBean.usuarioAutenticado.fechanac}</p>
</ui:define>
</ui:composition>
</body>
</html>
Login Bean
import com.mycompany.pfinalpsegrupo2.Usuarios;
import java.io.Serializable;
import java.util.logging.Level;
import java.util.logging.Logger;
import javax.faces.bean.ManagedBean;
import javax.enterprise.context.SessionScoped;
import javax.faces.application.FacesMessage;
import javax.faces.context.FacesContext;
import javax.inject.Inject;
import javax.servlet.ServletException;
import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpSession;
@ManagedBean
@SessionScoped
public class LoginBean implements Serializable {
private String email;
private String password;
@Inject
private UsuarioEJB user;
private static final Logger log = Logger.getLogger(RegisterView.class.getName());
private Usuarios usuario;
public String getEmail() {
return email;
}
public void setEmail(String email) {
this.email = email;
}
public String getPassword() {
return password;
}
public void setPassword(String password) {
this.password = password;
}
public Usuarios getUsuarioAutenticado() {
return usuario;
}
public void setUsuario(Usuarios usuario) {
this.usuario=usuario;
}
public String login() {
FacesContext context = FacesContext.getCurrentInstance();
HttpServletRequest request = (HttpServletRequest) context.getExternalContext().getRequest();
try {
request.login(email, password);
} catch (ServletException e) {
context.addMessage(null, new FacesMessage(FacesMessage.SEVERITY_WARN, "Login incorrecto", null));
return "login";
}
this.usuario = user.findByEmail(request.getUserPrincipal().getName());
if (request.isUserInRole("candidato")) {
return "/users/paginaprivada?faces-redirect=true";
} else if (request.isUserInRole("administrador")) {
return "/admin/paginaprivada?faces-redirect=true";
}
else if (request.isUserInRole("empresa")) {
return "/users/paginaprivadaempresa?faces-redirect=true";
}
else {
return "login";
}
}
public String logout() {
FacesContext context = FacesContext.getCurrentInstance();
HttpServletRequest request = (HttpServletRequest) context.getExternalContext().getRequest();
try {
this.usuario = null;
request.logout();
((HttpSession) context.getExternalContext().getSession(false)).invalidate();
} catch (ServletException e) {
log.log(Level.SEVERE, "Fallo al cerrar sesión", e);
}
return "/index?faces-redirect=true";
}
}
Gracias de antemano.