Creamos un nuevo metodo en el managedBeanUser y ya no hay managedBeanLogin lo quite como lo antes mencione asi que deberia quedar asi el bean:
public Usuarios getByUserNamel(){
/*inicializamos para asegurarnos*/
session = null;
transaction = null;
try {
/*instanciamos los objetos*/
usersDAO daoUsers = new usersDAO();
//abrimos sesion de conexcion
session = HibernateUtil.getSessionFactory().openSession();
//creamos la transaccion y la comenzamos
transaction = session.beginTransaction();
//sesion para recuperar las url que van llegando y hacer la comparacion
HttpSession sessionUser = (HttpSession) FacesContext.getCurrentInstance().getExternalContext().getSession(true);
//pasamos la session al objecto con sus parametros de session y la sessionUser con el atributo del bean de session haciendo un casting a String
user = daoUsers.getByUserName(session,sessionUser.getAttribute("userName").toString());
transaction.commit();//cerrar transaccion
//retornamos
return user;
} catch (Exception e) {
//verificamos sino hay ya una transaccion ya definida
if(transaction != null){
//si lo hay haremos que todo se revierta en la BD y que como estaba antes de utilizar este metodo
transaction.rollback();
}
FacesContext.getCurrentInstance().addMessage(null, new FacesMessage(FacesMessage.SEVERITY_FATAL, "Error Fatal", "Contacte con su administrador "+e.getMessage()));
return null;
}finally{
//verificamos sino hay ya una session ya definida
if(session != null){
//si lo hay cerramos la session
session.close();
}
}
}
Creamos un una pagina enlazada con el template que tenemos hecho y debe quedar asi:
<h2>Mis datos</h2>
<hr />
<h:form id="formDataUser">
<p:growl id="msjGral" showDetail="true" sticky="false" />
<p:dataTable id="tablaTUsuario" var="item" value="#{managedBeanUser.byUserNamel}" paginator="false" rows="1">
<p:column headerText="Nombre">
<h:outputText value="#{item.nombres}"/>
</p:column>
<p:column headerText="Apellido paterno">
<h:outputText value="#{item.ap}"/>
</p:column>
<p:column headerText="Apellido materno">
<h:outputText value="#{item.am}"/>
</p:column>
<p:column headerText="Correo electrónico">
<h:outputText value="#{item.email}"/>
</p:column>
<p:column headerText="Fecha de nacimiento">
<h:outputText value="#{item.fechaNacimiento}"/>
</p:column>
<p:column headerText="Sexo">
<h:outputText value="#{item.sexo}"/>
</p:column>
<p:column headerText="Direccion">
<h:outputText value="#{item.direccion}"/>
</p:column>
<p:column headerText="">
<p:commandButton value="Actualizar datos" onclick="PF('dialogoEditarUsuario').show()"/>
</p:column>
</p:dataTable>
</h:form>
y una vez iniciado session se mostraran los datos del usuario:
No hay comentarios:
Publicar un comentario