[Resolvido!] Dificuldade em pegar data de ultimo acesso de usuário

6 respostas
Kleber-rr

Olá Gujeiros, bom dia.

Meu sistema possui uma tabela de registro de acessos dos usuários, que armazena o id do registro, id do usuario, data, hora inicial, hora saida e o tempo logado.

Preciso simplesmente exibir em um panel no sistema com os dados do usuario logado e nome da instituicao (pontos vencidos). O que falta agora, é exibir a data do último acesso do usuário, onde estou tendo o problema.

Meu método está assim:

public String getExibirUltimaVisita() {

		String pegaUsuario = loginDAO.getUser(sessionHttp.getAttribute("usuarioLogado").toString());
		System.out.println("valor pegaUsuario: " + pegaUsuario);
		Long id;
		String nomePF = null;
		String dia = null;

		List<RegistroAcessos> lista = new ArrayList<RegistroAcessos>();
		RegistrosHandler register = pegaRegistro();

		for (Login user : getListaUsuarios()) {
			if (pegaUsuario.equals(user.getUsuario())) {
				id = user.getCodLogin();
				for (RegistroAcessos reg : register.getListaRegistros()){        //ESTA É A LINHA DO ERRO. RETORNA NULL NO CONSOLE
					if (id.equals(reg.getUsuario().getCodLogin())){
						lista.add(new RegistroAcessos());
						lista = (List<RegistroAcessos>) lista.get(lista.size()-1);
						for (RegistroAcessos r : lista) {
							if (id.equals(r.getUsuario().getCodLogin())){
								dia = r.getData().toString();
								nomePF = "Seu ultimo acesso foi em " + dia;
								System.out.println("Seu ultimo acesso foi em " + dia);
								
							}
						}

					}
				}
			}
		}
		return nomePF;
	}

Consigo gravar tranquilamente todas as informações na tabela de registro de acessos, porém, ao chamar a lista do bean, a mesma retorna nulo. No bean, o método de lista está assim:

public List<RegistroAcessos> getListaRegistros() {
		System.out.println("Carregando os cargos ...");
		Session session = HibernateUtil.currentSession();
		Dao<RegistroAcessos> dao = new Dao<RegistroAcessos>(session, RegistroAcessos.class);
		List<RegistroAcessos> list = dao.list();
		Collections.sort(list, registro);
		return list;
	}

Alguma solução? sei que deve ser alguma besteira que ainda não notei...

Agradeço a colaboração.

6 Respostas

Kleber-rr

up!

Kleber-rr

Eae gujeiros?? Ninguem se manifesta??

A

Você está lançado um laço for em um arquivo que não é list?

Kleber-rr

Obrigado por responder, andre.

Estou fazendo um for em um arquivo list sim, o problema agora (depois de realizar muitos testes) é adicionar os valores encontrados no for em outra list<> (no caso, em outra List.

Resumindo, preciso criar uma lista apenas com registros que possuam aquele login(login_fk) e dessa lista, pegar o ultimo registro inserido.

A

Tire o breakpoint do primeiro método e adicione um breakpoint no primeiro Sop dessa classe e veja em que momento ele não está fornecendo o que deveria:

debugando o codigo é claro

public List<RegistroAcessos> getListaRegistros() {  
    System.out.println("Carregando os cargos ...");  //breakpoint aqui
    Session session = HibernateUtil.currentSession();  
    Dao<RegistroAcessos> dao = new Dao<RegistroAcessos>(session, RegistroAcessos.class);  
    List<RegistroAcessos> list = dao.list();  
    Collections.sort(list, registro);  
    return list;  
}
Kleber-rr

Obrigado andré pela ajuda.

Consegui resolver o problema. Estava com dificuldades em criar uma lista com objetos do selectItem, mas com a ajuda dos Sop, consegui identificar e resolver.

Criado 28 de julho de 2011
Ultima resposta 1 de ago. de 2011
Respostas 6
Participantes 2