Pesquisar Usando o Usuario logado

4 respostas
M

Ola,

Estou fazendo uma aplicação de envio de matéria. Nesta app o usuário envia a matéria e o admin confirma o recebimento. Gostaria que o usuário possa listar as Matérias referente ao seu Órgão.

Estou Fazendo desta forma.

Quando o usuario loga ele ficar na session e pego a informação codigoOrgao.
So q quando uso este codigo na classe MateriaBean e nao receber o codigoOrgao.

private Usuario user;

public List<Materia> getAllUsuario() {
        try {
            return dao.getAllByCodigo("id_orgao", user.getCodigoOrgao());
        } catch (Exception e) {
            e.printStackTrace();
        }
        return null;
    }

Como faço para pega o UsuarioBean.usuario.orgaoCodigo e atribuir ao MateriaBean.usuario.orgaoCodigo?

Grato pela atenção de todos

4 Respostas

P

Tenta pegar o usuario logado usando o FacesContext, um exemplo seria esse:

public static Usuario obterUsuario(){
		FacesContext fc = FacesContext.getCurrentInstance();  
		HttpSession session = (HttpSession) fc.getExternalContext().getSession(false);  
		Usuario usuario = (Usuario)session.getAttribute("usuario");
		return usuario;
}

Testa ai pra ver se da certo

M

tira uma duvida

esta linha

Usuario usuario = (Usuario) session.getAttribute(“usuario”);

O que ela faz?

Valeu

P

michaelgerson:
tira uma duvida

esta linha

Usuario usuario = (Usuario) session.getAttribute(“usuario”);

O que ela faz?

Valeu

Creio que vc esteja usando jsf, quando vc faz o login, o usuario loga e vc pega esse usuario e coloca na sessão, dessa forma:

HttpSession session = (HttpSession) FacesContext.getCurrentInstance().getExternalContext().getSession(false);
FacesContext context = FacesContext.getCurrentInstance();

usuario = applicationService.getLoginService().autenticarUsuario(login, senha);

//Vc seta o usuario na sessao:
session.setAttribute("usuario", usuario);

Na linha da sua duvida, ele pega esse usuario, atraves do nome da session que e “usuario”, retornando um objeto usuario.

Vc pode pegar esse retorno e usar aonde for necessario.

M

Valeu pela Ajuda deu certo.

Valeusss

Criado 14 de novembro de 2011
Ultima resposta 14 de nov. de 2011
Respostas 4
Participantes 2