Mostrar Valor na Pagina JSF(Resolvido)

13 respostas
Naruto

Bom dia, pessoal gostaria de após efetuar o login mostrar na pagina do usuário um bem vindo usuario tal... pois bem tenho o seguinte código para fazer o login

no DAO

public static List<Empresa> verificarLogin(Empresa empresa) {
        conectar();
        List<Empresa> empresas = em.createQuery("select emp from Empresa as emp where emp.cnpjEmpresa = :cnpj and emp.senhaEmpresa = :senha").setParameter("cnpj", empresa.getCnpjEmpresa()).setParameter("senha", empresa.getSenhaEmpresa()).getResultList();
        desconectar();
        return empresas;
    }

no Fachada

public static List<Empresa> verificarLogin(Empresa empresa) {
        return EmpresaDAO.verificarLogin(empresa);
    }

e no ManagedBean

public String verificarLogin(){
        FacesContext context = FacesContext.getCurrentInstance();
        if (EmpresaFachada.verificarLogin(this.empresa).size() == 1) {
           
            return "sucesso";
        }
        FacesMessage message = new FacesMessage("O CNPJ ou a senha inválidos");
                context.addMessage(null, message);
        return "falha";
    }

ai se o login for feito com sucesso ele sera redirecionado para outra pagina e nessa pagina gostaria de mostrar
algo tipo Bem vindo #{EmpresaManagedBean.empresa.razaoEmpresa}

como posso fazer isso?

obrigado

13 Respostas

S

Nessa caso seu metodo está devolvendo uma lista. não é?

Naruto

isso mesmo

S

Voce quer mostrar o primeiro item da lista ou o usuario que logou?

voce pode mostrar todos os item da lista com o richDataTable.

Naruto

tipo quero poder mostrar na JSF qualquer atributo do usuario saca? pois a lista vai ter apenas o usuario que logou …

S

Se vai devolver só um então eu acho que é isso

Olá <h:outputText value="#{EmpresaManagedBean.empresa.razaoEmpresa}"/>
Naruto

pois é ja tentei isso mais não da certo porque quem esta recebendo os dados é a List

:confused:

S

Mais ai voce vai ter que saber em qual posição ta o usuario exemplo se ele estiver na posição 1 é assim

Olá <h:outputText value="#{usuarioMB.usuarios[0].nome}"/>

tenho uma lista de Usuario dentro do meu MB assim eu pego o usuario.

Naruto

rapaz nem deu certo aqui achu que teria que ser de outra forma em mano

vlwwwwwww

Naruto

alguem tem mais alguma outra ideia???

vlwww

Naruto

???

evil.hunter

Porque ao invés de retornar uma lista, o que não faz muito sentido você não retorna a empresa em si. Se ela vir nula o login falha.

Naruto

como posso fazer isso? pois tentei e me retornou o seguinte erro nullExecptionPoint

Naruto
caraka gente não acho como fazer isso, olhem so o código EmpresaDAO
/*
 * To change this template, choose Tools | Templates
 * and open the template in the editor.
 */
package persistencia;

import java.util.Collection;
import java.util.List;
import javax.persistence.EntityManager;
import javax.persistence.EntityManagerFactory;
import javax.persistence.NoResultException;
import javax.persistence.Persistence;
import javax.persistence.Query;
import negocio.entidade.Empresa;
import negocio.excecao.CampoUniqueException;

/**
 *
 * @author Jeferson Guerrero
 */
public class EmpresaDAO {

    private static EntityManagerFactory emf;
    private static EntityManager em;

    private static void conectar() {
        emf = Persistence.createEntityManagerFactory("SUI_QRCODEPU");
        em = emf.createEntityManager();
    }

    public static void desconectar() {
        em.close();
        emf.close();
    }

    public static void alterar(Empresa empresa) {
        conectar();
        em.getTransaction().begin();
        em.merge(empresa);
        em.getTransaction().commit();
        desconectar();

    }

    public static void excluir(Empresa empresa) {
        conectar();
        em.getTransaction().begin();
        Empresa empresaASerExcluida = em.merge(empresa);
        em.remove(empresaASerExcluida);
        em.getTransaction().commit();
        desconectar();

    }

    public static void inserir(Empresa empresa) {
        conectar();
        em.getTransaction().begin();
        em.persist(empresa);
        em.getTransaction().commit();
        desconectar();

    }

    public static Empresa recuperarPorId(Integer id) throws Exception {
        conectar();
        Empresa empresa = em.find(Empresa.class, id);
        desconectar();
        return empresa;
    }

    public static List<Empresa> recuperarTodas() {
        conectar();
        List<Empresa> empresas = em.createQuery("select emp from Empresa as emp order by emp.razaoEmpresa").getResultList();
        desconectar();
        return empresas;
    }

    public static void verificaCnpjCadastrado(String cnpj) throws CampoUniqueException {
        conectar();
        if (em.createQuery("select emp from Empresa as emp where emp.cnpjEmpresa = :cnpj").setParameter("cnpj", cnpj).getResultList().size() != 0) {
            desconectar();
            throw new CampoUniqueException("O CNPJ informado já está cadastrado");
        }
        desconectar();
    }

    public static void verificaEmailCadastrado(String email) throws CampoUniqueException {
        conectar();
        if (em.createQuery("select emp from Empresa as emp where emp.emailEmpresa = :email").setParameter("email", email).getResultList().size() != 0) {
            desconectar();
            throw new CampoUniqueException("O E-mail informado já está cadastrado");
        }
        desconectar();
    }

    public static List<Empresa> verificarLogin(Empresa empresa) {
        conectar();
        List<Empresa> empresas = em.createQuery("select emp from Empresa as emp where emp.cnpjEmpresa = :cnpj and emp.senhaEmpresa = :senha").setParameter("cnpj", empresa.getCnpjEmpresa()).setParameter("senha", empresa.getSenhaEmpresa()).getResultList();
        desconectar();
        return empresas;
    }   

    
}
EmpresaFachada
/*
 * To change this template, choose Tools | Templates
 * and open the template in the editor.
 */
package negocio.fachada;

import java.util.Collection;
import java.util.List;
import negocio.entidade.Empresa;
import negocio.excecao.CampoUniqueException;
import persistencia.EmpresaDAO;

/**
 *
 * @author Jeferson Guerrero
 */
public class EmpresaFachada {

    public static void alterar(Empresa empresa) {
        EmpresaDAO.alterar(empresa);
    }

    public static void excluir(Empresa empresa) {
        EmpresaDAO.excluir(empresa);
    }

    public static void inserir(Empresa empresa) {
        EmpresaDAO.inserir(empresa);
    }

    public static List<Empresa> listar() {
        return EmpresaDAO.recuperarTodas();
    }

    public static void verificaCnpjCadastrado(String cnpj) throws CampoUniqueException {
        EmpresaDAO.verificaCnpjCadastrado(cnpj);
    }

    public static void verificaEmailCadastrado(String email) throws CampoUniqueException {
        EmpresaDAO.verificaEmailCadastrado(email);
    }

    public static List<Empresa> verificarLogin(Empresa empresa) {
        return EmpresaDAO.verificarLogin(empresa);
    }    
   
}
e a EmpresaManagedBean
package apresentacao.managedbean;

import apresentacao.utility.MensagemUtility;
import javax.faces.component.UIComponent;
import javax.faces.component.UIInput;
import javax.faces.model.ListDataModel;
import negocio.entidade.Empresa;
import negocio.fachada.EmpresaFachada;
import javax.faces.application.FacesMessage;
import javax.faces.context.FacesContext;
import javax.persistence.NoResultException;

/**
 *
 * @author Jeferson Guerrero
 */
public class EmpresaManagedBean {
    
    private Empresa empresa;
    private ListDataModel empresas;
    private UIInput senhaInput;

    public void validateSenha(FacesContext context, UIComponent toValidate, Object value) {

        String confirmaSenha = (String) value;
        String senhaConf = (String) this.senhaInput.getLocalValue();

        if (!confirmaSenha.equals(senhaConf)) {
            ((UIInput) toValidate).setValid(false);

            FacesMessage message = new FacesMessage("Senhas não correspondem");
            context.addMessage(toValidate.getClientId(context), message);
        }

    }

    public UIInput getSenhaInput() {
        return senhaInput;

    }

    public void setSenhaInput(UIInput senhaInput) {
        this.senhaInput = senhaInput;

    }

    public Empresa getEmpresa() {
        if (this.empresa == null) {
            this.empresa = new Empresa();
        }
        return empresa;
    }

    public void setEmpresa(Empresa empresa) {
        this.empresa = empresa;
    }

    public ListDataModel getEmpresas() {
        return empresas;
    }

    public void setEmpresas(ListDataModel empresas) {
        this.empresas = empresas;
    }

    public String montarPaginaCadastroEmpresa() {
        this.empresa = new Empresa();
        return "sucesso";
    }

    public String inserir() throws Exception {
        try {
            EmpresaFachada.verificaCnpjCadastrado(this.getEmpresa().getCnpjEmpresa());
            EmpresaFachada.verificaEmailCadastrado(this.getEmpresa().getEmailEmpresa());
            EmpresaFachada.inserir(this.getEmpresa());
            return "sucesso";
        } catch (Exception e) {
            MensagemUtility.adicionarMensagemDeErro("formCadastroEmpresa", e.getMessage());
            return "falha";

        }

    }

    public void recuperarEmpresas() {
        this.empresas = new ListDataModel(EmpresaFachada.listar());
    }

//    public String verificarLogin(){
//        FacesContext context = FacesContext.getCurrentInstance();
//
//        if (EmpresaFachada.verificarLogin(this.empresa).size() == 1) {
//
//            return "sucesso";
//        }
//        FacesMessage message = new FacesMessage("O CNPJ ou a senha inválidos");
//                context.addMessage(null, message);
//        return "falha";
//    }


     public String verificarLogin(){
        FacesContext context = FacesContext.getCurrentInstance();

        Empresa empresaDados = getDadosEmpresa();

        if (empresaDados != null) {
            return "sucesso";
        }
        FacesMessage message = new FacesMessage("O CNPJ ou a senha inválidos");
                context.addMessage(null, message);
        return "falha";
    }
    

    private Empresa getDadosEmpresa() {
        try {
            Empresa empresaDados = (Empresa) EmpresaFachada.verificarLogin(this.empresa).get(0);
            return empresaDados;
        } catch (NoResultException nre) {
            return null;
        }

    }

    
}

a pagina que eu quero que mostre o valore seja bem vindo apos o login

<?xml version='1.0' encoding='UTF-8' ?>
<!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:ui="http://java.sun.com/jsf/facelets"
      xmlns:h="http://java.sun.com/jsf/html"
      xmlns:f="http://java.sun.com/jsf/core">

    <head></head>
    <body>
        <ui:composition template="/layoutEmpresa.xhtml">
            <ui:define name="meio">
            <table align="center" border="0" cellpadding="0" cellspacing="0">
            <f:view>
                <h:form id="formHomeEmpresa">
                    <tr>
                        <td style="background-color: #D3D3D3" width="500">
                         
                            <h:outputText>#{empresaDados.razaoEmpresa}</h:outputText>
                            
                        </td>
                    </tr>
                </h:form>
            </f:view>
            </table>
            </ui:define>
        </ui:composition>
    </body>
</html>

so preciso mostrar seja bem vindo empresa tal qando ele for redirecionado para a pagina da Empresa porem ta dificil :/

obrigado pela ajuda

Criado 10 de abril de 2010
Ultima resposta 12 de abr. de 2010
Respostas 13
Participantes 3