[JSF] Editar dados ao clicar no menu

Boa noite galera, Tenho uma aplicação aonde o usuário pode clicar no menu e nesse momento abrir a tela de edição dos seus dados. quando ele faz o seu primeiro registro ele registra apenas o cpf e a senha do usuário para logar e depois então terminar o seu cadastro logando no sistema e indo até o menu de editar dados (que no caso seria os dados do mesmo logado)

o problema: Não consigo de forma alguma carregar os dados do usuário =/

segue os codigos

Controller


package br.com.estagio.controller;

import javax.annotation.PostConstruct;
import javax.faces.bean.ManagedBean;
import javax.faces.bean.RequestScoped;
import javax.faces.bean.SessionScoped;
import javax.faces.bean.ViewScoped;

import br.com.estagio.beans.Administrador;
import br.com.estagio.beans.Cursos;
import br.com.estagio.beans.Login;
import br.com.estagio.modelo.AdministradorDAO;
import br.com.estagio.util.UtilMensagens;


@ManagedBean(name="controllerAdministrador")
@RequestScoped
public class ControllerAdministrador {

	private Administrador administrador;
	private AdministradorDAO administradorDAO;
	private Login login;
	
	public ControllerAdministrador(){
		administradorDAO = new AdministradorDAO();
	}
	
	@PostConstruct
	public void init(){
		this.administrador = new Administrador();
		this.login = new Login();
	}

	/*
	 * Cadastro do aluno
	 */
	public String Gravar(){
		login.setId(ControllerLogin.getSingletonLogado().getId());
		administrador.setId_login(login);
		
		if(administradorDAO.Adicionar(administrador)){
			return "form";
		} else {
			return "form";
		}
	}
	
	//método de redirecionamento para a listagem dos administradores cadastrados
	public String listar(){
		return "/admin/cad_admin/listar?faces-redirect=true";
	}
	
	//Criar um novo curso.
	public String novo(){
		administrador = new Administrador();
		return "form";
	}
	
	public String editarMeusDados(){
		administrador = administradorDAO.listarDadosAdministradorLogado();
		
		return "/admin/edi_admin/form?faces-redirect=true";
	}
	
	//Método relacionado para voltar a listagem de curso
	public String cancelar() {
		return "/admin/edi_admin/form?faces-redirect=true";
	}
	
	public Administrador getAdministrador() {
		return administrador;
	}

	public void setAdministrador(Administrador administrador) {
		this.administrador = administrador;
	}

	public AdministradorDAO getAdministradorDAO() {
		return administradorDAO;
	}

	public void setAdministradorDAO(AdministradorDAO administradorDAO) {
		this.administradorDAO = administradorDAO;
	}


	
}

Bean

package br.com.estagio.beans;

import java.io.Serializable;
import java.util.Date;

import javax.persistence.Column;
import javax.persistence.Entity;
import javax.persistence.GeneratedValue;
import javax.persistence.GenerationType;
import javax.persistence.Id;
import javax.persistence.JoinColumn;
import javax.persistence.ManyToOne;
import javax.persistence.OneToOne;
import javax.persistence.Table;
import javax.persistence.Temporal;
import javax.persistence.TemporalType;
import javax.validation.constraints.NotNull;

import org.hibernate.annotations.Index;
import org.hibernate.validator.constraints.Email;
import org.hibernate.validator.constraints.Length;
import org.hibernate.validator.constraints.NotEmpty;

@SuppressWarnings("serial")
@Entity
@Table(name="administrador")
public class Administrador implements Serializable {

	@Id
	@GeneratedValue(strategy=GenerationType.AUTO)
	@Column(name="id")
	private Integer id;
	
	@Length(max=150, message="O nome não pode passar de {max} caracteres")
	@NotEmpty(message="O nome não pode estar vazio")
	@Column(name="nome", length=150, nullable=false)
	@Index(name="IDX_ALUNOS_NOME")
	private String nome;
	
	@NotEmpty(message="O e-mail deve ser informado")
	@Email(message="Informe um e-mail valido")
	@Column(name="email", length=200,  nullable=false)
	private String email;
	
	@NotNull(message="A data de nascimento deve ser informada")
	@Column(name="data_nascimento", nullable=false, length=30)
	@Temporal(TemporalType.DATE)
	private Date data_nascimento;
	
	@NotNull(message="A unidade deve ser informado")
	@OneToOne
	@JoinColumn(name="id_unidade", referencedColumnName="id", nullable=false)
	private Unidades unidade;
	
	@NotNull(message="A cidade deve ser informado")
	@OneToOne
	@JoinColumn(name="id_cidade", referencedColumnName="id", nullable=false)
	private Cidade cidade;
	
	@NotNull(message="O telefone deve ser informado")
	@Column(name="telefone", nullable=false)
	private String telefone;
	
	@Column(name="celular", nullable=true)
	private String celular;
	
	@NotEmpty(message="O sexo deve ser informado")
	@Column(name="sexo", length=2, nullable=false)
	private String sexo;

	@NotNull(message="código do login deve ser informado")
	@OneToOne
	@JoinColumn(name="id_login", referencedColumnName="id", nullable=false)
	private Login id_login;
	
	public Administrador(){}
	
	public Integer getId() {
		return id;
	}

	public void setId(Integer id) {
		this.id = id;
	}

	public String getNome() {
		return nome;
	}

	public void setNome(String nome) {
		this.nome = nome;
	}

	public String getEmail() {
		return email;
	}

	public void setEmail(String email) {
		this.email = email;
	}

	public Date getData_nascimento() {
		return data_nascimento;
	}

	public void setData_nascimento(Date data_nascimento) {
		this.data_nascimento = data_nascimento;
	}

	public Unidades getUnidade() {
		return unidade;
	}

	public void setUnidade(Unidades unidade) {
		this.unidade = unidade;
	}

	public Cidade getCidade() {
		return cidade;
	}

	public void setCidade(Cidade cidade) {
		this.cidade = cidade;
	}

	public String getTelefone() {
		return telefone;
	}

	public void setTelefone(String telefone) {
		this.telefone = telefone;
	}

	public String getCelular() {
		return celular;
	}

	public void setCelular(String celular) {
		this.celular = celular;
	}

	public String getSexo() {
		return sexo;
	}

	public void setSexo(String sexo) {
		this.sexo = sexo;
	}

	@Override
	public int hashCode() {
		final int prime = 31;
		int result = 1;
		result = prime * result + ((id == null) ? 0 : id.hashCode());
		return result;
	}

	@Override
	public boolean equals(Object obj) {
		if (this == obj)
			return true;
		if (obj == null)
			return false;
		if (getClass() != obj.getClass())
			return false;
		Administrador other = (Administrador) obj;
		if (id == null) {
			if (other.id != null)
				return false;
		} else if (!id.equals(other.id))
			return false;
		return true;
	}

	@Override
	public String toString() {
		return nome;
	}

	public Login getId_login() {
		return id_login;
	}

	public void setId_login(Login id_login) {
		this.id_login = id_login;
	}
	
}

DAO


package br.com.estagio.modelo;

import java.util.List;

import javax.persistence.EntityManager;

import br.com.estagio.beans.Administrador;
import br.com.estagio.beans.Alunos;
import br.com.estagio.beans.Login;
import br.com.estagio.controller.ControllerLogin;
import br.com.estagio.jpa.EntityManagerUtil;
import br.com.estagio.util.UtilErros;
import br.com.estagio.util.UtilMensagens;

public class AdministradorDAO {
	
	private EntityManager em;
	
	public AdministradorDAO(){
		em = EntityManagerUtil.getEntityManager();
	}
	
	@SuppressWarnings("unchecked")
	public List<Administrador> listarAdministrador(){
		return em.createQuery("FROM Administrador GROUP BY nome").getResultList();
	}

	
	public Administrador listarDadosAdministradorLogado(){
		return (Administrador) em.createQuery("FROM Administrador WHERE id_login ="+ControllerLogin.getSingletonLogado().getId()).getSingleResult();
	}
	
	/**
	 * Adicionar um novo aluno
	 * 
	 * @param obj
	 * @return
	 */
	public boolean Adicionar(Administrador obj){
		try {
			//iniciar transação
			em.getTransaction().begin();
			//verifico se é um objeto novo
			if(obj.getId() == null){
//				obj.setId_login(login.getUsuarioLogado().getId());
				em.persist(obj);
			} else {
				em.merge(obj);
			}
			em.getTransaction().commit();
			//exibo a mensagem para o usuário
			UtilMensagens.mensagemInformacao("Administrador Cadastrado com sucesso!");
			return true;
		} catch (Exception e) {
			//Verifica se a conexão estar inativa, se estive inicia a conexão
			if(em.getTransaction().isActive() == false){
				em.getTransaction().begin();
			}
			//Volta e tira os dados que tentou adicionar
			em.getTransaction().rollback();
			UtilMensagens.mensagemErro("Erro ao inserir Aluno: "+ UtilErros.getMensagemErro(e));
			return false;
		}
	}
	
}

form

<!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:h="http://java.sun.com/jsf/html"
      xmlns:f="http://java.sun.com/jsf/core"
      xmlns:ui="http://java.sun.com/jsf/facelets"> 

<ui:composition template="../../layout/admin/header.xhtml">
	<ui:define name="tituloConteudo">ALFA - Administradores</ui:define>
	<ui:define name="conteudoSistema">
	
	<div class="container">
			<div class="well col-md-12">
				<div class="panel panel-danger">
					<div class="panel-heading">ADMINISTRADOR</div>
					<div class="panel-body">
						<div class="form-group col-md-12">
							<h:form >
								<h:messages />
								<div class="row">
									<div class="form-group col-md-3">
										<label for="cpf">CPF </label>
										<h:inputText class="form-control" type="text" id="cpf" name="cpf" value="#{controllerLogin.usuarioLogado.cpf}" />
									</div>
									<div class="form-group col-md-4">
										<label for="nome">Nome </label>
										<h:inputText class="form-control" type="text" id="nome" name="nome" value="#{controllerAdministrador.administrador.nome}" />
									</div>
									<div class="form-group col-md-3">
										<label for="email">E-mail </label>
										<h:inputText class="form-control" type="text" id="email" name="email" value="#{controllerAdministrador.administrador.email}" />
									</div>
									<div class="form-group col-md-2">
										<label for="email">Data Nascimento </label>
										<h:inputText class="form-control" type="text" id="data_nascimento" name="data_nascimento" value="#{controllerAdministrador.administrador.data_nascimento}">
											<f:convertDateTime type="date" pattern="dd/mm/yyyy" />
										</h:inputText>
									</div>
								</div>
								
								<div class="row">
									<div class="form-group col-md-3">
										<label for="telefone"> Telefone </label>
										<h:inputText class="form-control" value="#{controllerAdministrador.administrador.telefone}" />
									</div>
									<div class="form-group col-md-3">
										<label for="celular"> Celular </label>
										<h:inputText class="form-control" value="#{controllerAdministrador.administrador.celular}" />
									</div>
									<div class="form-group col-md-3" >
										<h:outputLabel for="sexo" />
									  	<h:selectOneRadio  class="form-group" value="#{controllerAdministrador.administrador.sexo}">
									  			<f:selectItem itemValue="M" itemLabel="Masculino &nbsp;&nbsp;"  />
										  		<f:selectItem itemValue="F" itemLabel="Feminino" />
									  	</h:selectOneRadio>
									</div>
									<div class="form-group col-md-3" >
										<label for="unidade">Unidade </label>
										<h:selectOneMenu class="form-control" id="unidade" name="unidade" value="#{controllerAdministrador.administrador.unidade}" converter="entityConverter">
											<f:selectItem itemValue="#{null}" itemLabel="Selecione uma unidade"  /> 
											<f:selectItems value="#{controllerUnidades.dao.ListarUnidade()}" var="unidade"  
					           								itemValue="#{unidade}" itemLabel="#{unidade.nome}" /> 
										</h:selectOneMenu>
									</div>
								</div>
								
								<div class="row">
									<div class="form-group col-md-2" >
										<label for="estado">Estado </label>
										<h:selectOneMenu class="form-control" id="estado" name="estado">
											<f:selectItem itemValue="#{null}" itemLabel="GO"  /> 
										</h:selectOneMenu>
									</div>
									
									<div class="form-group col-md-3" >
										<label for="cidade">Cidade </label>
										<h:selectOneMenu class="form-control" id="cidade" name="cidade" value="#{controllerAdministrador.administrador.cidade}" converter="entityConverter">
											<f:selectItem itemValue="#{null}" itemLabel="Selecione uma cidade"  /> 
											<f:selectItems value="#{controllerCidades.dao.ListarCidadePorUF()}" var="cidade"  
					           								itemValue="#{cidade}" itemLabel="#{cidade.nome}" /> 
										</h:selectOneMenu>
									</div>
								</div>
								
								<div align="right">
									<br />
									<h:commandButton class="btn btn-success btn-sm" action="#{controllerAdministrador.Gravar()}" value="Salvar" />								</div>
							</h:form>
						</div>
					</div>
				</div>
			</div>
		</div>
	
	
	</ui:define>
</ui:composition>


</html>

Header (Onde carrega o Menu)

<!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:h="http://java.sun.com/jsf/html"
      xmlns:f="http://java.sun.com/jsf/core"
      xmlns:ui="http://java.sun.com/jsf/facelets"> 


<h:head> 

    <title><ui:insert name="tituloConteudo"></ui:insert></title>

    <!-- Bootstrap core CSS -->
    <h:outputStylesheet library="css" name="bootstrap.css" />
    <h:outputStylesheet library="css" name="style.css" />
	<!-- font Awesome -->
	<h:outputStylesheet library="css" name="font-awesome.min.css" />
	<h:outputStylesheet library="css" name="bootstrap.icon-large.css" />
 	<!-- Theme style -->


	<h:outputScript library="js" name="jquery-1.7.2.js" />
	<h:outputScript library="js" name="bootstrap.min.js" />
	
    <!-- Just for debugging purposes. Don't actually copy this line! -->
    <!--[if lt IE 9]><script src="../../assets/js/ie8-responsive-file-warning.js"></script><![endif]-->

    <!-- HTML5 shim and Respond.js IE8 support of HTML5 elements and media queries -->
    <!--[if lt IE 9]>
      <script src="https://oss.maxcdn.com/libs/html5shiv/3.7.0/html5shiv.js"></script>
      <script src="https://oss.maxcdn.com/libs/respond.js/1.4.2/respond.min.js"></script>
    <![endif]-->
</h:head>
<body>
 
 <h:form>
 <div class="navbar navbar-inverse navbar-fixed-top" role="navigation">
        <div class="container">
          <div class="navbar-header">
            <button type="button" class="navbar-toggle" data-toggle="collapse" data-target=".navbar-collapse">
              <span class="sr-only">Toggle navigation</span>
              <span class="icon-bar"></span>
              <span class="icon-bar"></span>
              <span class="icon-bar"></span>
            </button>
            <a class="navbar-brand" href="#">ALFA ESTÁGIO</a>
          </div>
          <div class="navbar-collapse collapse">
            <ul class="nav navbar-nav">
              <li class="dropdown">
                <a href="#" class="dropdown-toggle" data-toggle="dropdown">Administrador<b class="caret"></b></a>
                <ul class="dropdown-menu">
                  <li><h:commandLink action="#{controllerAdministrador.editarMeusDados()}" value="Editar dados" /> </li>
                </ul>
              </li>
              <li class="dropdown">
                <a href="#" class="dropdown-toggle" data-toggle="dropdown">Faculdade<b class="caret"></b></a>
                <ul class="dropdown-menu">
                  <li><h:commandLink action="#{controllerUnidades.Listar()}" value="Cadastrar Unidade" /></li>
                  <li><h:commandLink action="#{controllerCursos.listar()}" value="Cadastrar Curso" /></li>
                  <li><h:commandLink action="#{controllerAdministrador.listar()}" value="Cadastrar Administrador" /></li>
                </ul>
              </li>
              <li class="dropdown">
                <a href="#" class="dropdown-toggle" data-toggle="dropdown">Buscar <b class="caret"></b></a>
                <ul class="dropdown-menu">
                  <li><a href="#"> Aluno </a></li>
                  <li><a href="#"> Administrador </a></li>
                </ul>
              </li>
              <li class="dropdown">
                <a href="#" class="dropdown-toggle" data-toggle="dropdown">Vagas <b class="caret"></b></a>
                <ul class="dropdown-menu">
                  <li><a href="#"> Cadastrar Vaga </a></li>
                  <li><a href="#"> Enviar E-mail </a></li>
                </ul>
              </li>
            </ul>
          </div><!--/.nav-collapse -->
        </div>
</div>
</h:form>
    
<ui:insert name="conteudoSistema">


</ui:insert>

</body>
</html>