[RESOLVIDO] Como ler propriedade de outra classe no JSF?

3 respostas
Metallica

Olá,

o cliente loga no site, com isso um objeto Cliente é preenchido.
O cliente pode desejar fazer um pedido (classe Pedido), daí ele escolhe os produtos e clica no botão “confirmar pedido”.
O botão chama o método confirmarPedido(). Só que nesse método preciso saber quem é o cliente (qual o ID) e eu sei que ele foi preenchido (no login, porque o managedBean é definido session), como acesso isso no JSF?

Já tentei com h:inputHidden, mas só me aparece NullPointer.

public class Pedido{

    public String confirmarPedido() {

        idCliente = ??? //Como consigo o cliente da sessão???

        Cliente cliente = dao.getClienteByID(idCliente);
        cliente.setPedido(this); //associando esse pedido feito ao cliente logado.

    }
}

Danke!

3 Respostas

V

Eu faço da seguinte forma:

public static Object getManagedBeanValue(String managedBeanName) {
    FacesContext context = FacesContext.getCurrentInstance();
    try{
         return context.getApplication().getVariableResolver().resolveVariable(context, managedBeanName);
    } catch (Exception e){   
         e.printStackTrace();
         return null;
    }
}
marcosharbs

Faz assim
qdo o cliente logar
tp qdo clicar no botao e executar o metodo que valida e loga o cliente, vc joga esse cliente na seção

HttpSession httpSession = (HttpSession) FacesContext.getCurrentInstance().getExternalContext().
getSession(false);
				
Cliente cliente = new Cliente();
//seta as informaçoes do cliente				
httpSession.setAttribute("cliente", cliente);

assim você terá o cliente na seção, ai qdo precisar pegar as inofrmaçoes faça o seguinte, no caso teria que fazer isso dentro do seu metodo confirmarPedido():

HttpSession httpSession = (HttpSession) FacesContext.getCurrentInstance().getExternalContext().
getSession(false);
Cliente cliente= (Cliente) httpSession.getAttribute("cliente");

assim você tem o cliente que está logado e pode trabalhar com ele =D
espero ter ajudado

Metallica

Obrigado, funcionou!

Criado 28 de outubro de 2008
Ultima resposta 30 de out. de 2008
Respostas 3
Participantes 3