Construtor de ManagedProperty sendo executado duas vezes

2 respostas
F

Eu sei que o construtor do ManagedProperty comboBean esta sendo executado duas vezes, alguem sabe me dizer o pq?

Cliente ManagedBean:
@ManagedBean(name = "alterarClienteBean")
@ViewScoped
public class AlterarClienteBean implements Serializable {
    private long pes_id;
    private String codigo;
    private String razao;
    private String cnpj;
    private String ie;
    private String loja;
    private String nome;
    private String email;
    private String endereco;
    private String bairro;
    private String cep;
    @ManagedProperty(value = "#{comboBean}")
    private ComboBean comboBean;
    private boolean formularioCliente;
    private List<TelefoneFormulario> telefones = new ArrayList<TelefoneFormulario>();
    private String telefone;
    private String tipoTelefone;
    private Vendedor vendedor;

    public AlterarClienteBean() {
        try{
            pes_id = Long.parseLong(FacesContext.getCurrentInstance().getExternalContext().getRequestParameterMap().get("id"));
        }catch(Exception e){
            pes_id = 0;
        }
        if (pes_id == 0) {
            System.out.println("Erro: id vazio!");
        } else {
            ClienteDao clienteDao = new ClienteDao();
            Cliente cliente = clienteDao.getClienteById(pes_id);
            HttpSession hs = (HttpSession) FacesContext.getCurrentInstance().getExternalContext().getSession(true);
            VendedorLogin vendedorLogin = (VendedorLogin) hs.getAttribute("currentUser");

            VendedorDao vendedorDao = new VendedorDao();
            vendedor = vendedorDao.getVendedorByCod(vendedorLogin.getCodigo());

            if (cliente.getVen_id().getPes_id() != vendedor.getPes_id()) {
                System.out.println("Cliente não é desse vendedor! ID_C: " + cliente.getVen_id().getPes_id() + " ID_V: " + vendedor.getPes_id());
            } else {
                codigo = String.valueOf(cliente.getCli_codigo());
                razao = cliente.getCli_razao();
                cnpj = cliente.getCli_cnpj();
                ie = cliente.getCli_ie();
                loja = String.valueOf(cliente.getCli_loja());
                nome = cliente.getPes_nome();
                email = cliente.getPes_email();
                endereco = cliente.getPes_endereco();
                bairro = cliente.getPes_bairro();
                cep = cliente.getPes_cep();
                if(comboBean == null){ 
                    comboBean = new ComboBean();
                    comboBean.setEstado(cliente.getCid_id().getEst_id());
                    comboBean.setCidade(cliente.getCid_id());
                }
                telefone = "";
                tipoTelefone = "1";
                telefones = new ArrayList();
                TelefoneDao telefoneDao = new TelefoneDao();
                List<Telefone> telefones_temp;
                telefones_temp = telefoneDao.getTelefoneByPesId(cliente);
                for (Telefone t : telefones_temp) {
                    TelefoneFormulario tel_form = new TelefoneFormulario();
                    tel_form.setTel_numero(t.getTel_numero());
                    tel_form.setTel_tipo(String.valueOf(t.getTel_tipo()));
                    telefones.add(tel_form);
                }
            }
        }
        formularioCliente = true;
    }


    public String adicionarTelefone() {
        if (!telefone.equals("")) {
            for (TelefoneFormulario t : telefones) {
                if (t.getTel_numero().equals(telefone) && t.getTel_tipo().equals(tipoTelefone)) {
                    telefone = "";
                    tipoTelefone = "1";
                    return null;
                }
            }
            TelefoneFormulario tempTel = new TelefoneFormulario();
            tempTel.setTel_numero(telefone);
            tempTel.setTel_tipo(tipoTelefone);
            telefones.add(tempTel);
            telefone = "";
            tipoTelefone = "1";
        }
        return null;
    }

    public String removerTelefone() {
        for (TelefoneFormulario t : telefones) {
            if (t.getTel_numero().equals(telefone) && t.getTel_tipo().equals(tipoTelefone)) {
                telefones.remove(t);
                break;
            }
        }
        telefone = "";
        tipoTelefone = "1";
        return null;
    }

    public String validarForm() {
        boolean erro = false;
        if (codigo.equals("")) {
            FacesContext.getCurrentInstance().addMessage("alterarCliente:codigoMessage", new FacesMessage(FacesMessage.SEVERITY_ERROR, "", "Campo obrigatório"));
            erro = true;
        }
        if (razao.equals("")) {
            FacesContext.getCurrentInstance().addMessage("alterarCliente:razaoMessage", new FacesMessage(FacesMessage.SEVERITY_ERROR, "", "Campo obrigatório"));
            erro = true;
        }
        if (cnpj.equals("")) {
            FacesContext.getCurrentInstance().addMessage("alterarCliente:cnpjMessage", new FacesMessage(FacesMessage.SEVERITY_ERROR, "", "Campo obrigatório"));
            erro = true;
        } else {
            CNPJValidator validator = new CNPJValidator();
            try {
                validator.assertValid(cnpj);
            } catch (InvalidStateException e) {
                //for (ValidationMessage message : e.getInvalidMessages()) {
                FacesContext.getCurrentInstance().addMessage("alterarCliente:cnpjMessage", new FacesMessage(FacesMessage.SEVERITY_ERROR, "", "CNPJ invalido"));
                erro = true;
                //}
            }
        }
        if (ie.equals("")) {
            FacesContext.getCurrentInstance().addMessage("alterarCliente:ieMessage", new FacesMessage(FacesMessage.SEVERITY_ERROR, "", "Campo obrigatório"));
            erro = true;
        }
        if (Integer.parseInt(loja) < 1) {
            FacesContext.getCurrentInstance().addMessage("alterarCliente:lojaMessage", new FacesMessage(FacesMessage.SEVERITY_ERROR, "", "Dado inválido"));
            erro = true;
        }
        if (nome.equals("")) {
            FacesContext.getCurrentInstance().addMessage("alterarCliente:nomeMessage", new FacesMessage(FacesMessage.SEVERITY_ERROR, "", "Campo obrigatório"));
            erro = true;
        }
        if (email.equals("")) {
            FacesContext.getCurrentInstance().addMessage("alterarCliente:emailMessage", new FacesMessage(FacesMessage.SEVERITY_ERROR, "", "Campo obrigatório"));
            erro = true;
        }
        if (endereco.equals("")) {
            FacesContext.getCurrentInstance().addMessage("alterarCliente:enderecoMessage", new FacesMessage(FacesMessage.SEVERITY_ERROR, "", "Campo obrigatório"));
            erro = true;
        }
        if (bairro.equals("")) {
            FacesContext.getCurrentInstance().addMessage("alterarCliente:bairroMessage", new FacesMessage(FacesMessage.SEVERITY_ERROR, "", "Campo obrigatório"));
            erro = true;
        }
        if (cep.equals("")) {
            FacesContext.getCurrentInstance().addMessage("alterarCliente:cepMessage", new FacesMessage(FacesMessage.SEVERITY_ERROR, "", "Campo obrigatório"));
            erro = true;
        }
        if (getComboBean().getEstado() == null) {
            FacesContext.getCurrentInstance().addMessage("alterarCliente:estadoMessage", new FacesMessage(FacesMessage.SEVERITY_ERROR, "", "Campo obrigatório"));
            erro = true;
        }
        if (getComboBean().getCidade() == null) {
            FacesContext.getCurrentInstance().addMessage("alterarCliente:cidadeMessage", new FacesMessage(FacesMessage.SEVERITY_ERROR, "", "Campo obrigatório"));
            erro = true;
        }

        if (erro == false) {
            ClienteDao clienteDao = new ClienteDao();
            Cliente cliente = clienteDao.getClienteById(pes_id);
            cliente.setCid_id(getComboBean().getCidade());
            cliente.setCli_cnpj(cnpj);
            cliente.setCli_codigo(Long.parseLong(codigo));
            cliente.setCli_ie(ie);
            cliente.setCli_loja(Integer.parseInt(loja));
            cliente.setCli_razao(razao);
            cliente.setPes_bairro(bairro);
            cliente.setPes_cep(cep);
            cliente.setPes_email(email);
            cliente.setPes_endereco(endereco);
            cliente.setPes_nome(nome);

            List<Telefone> lista_telefones = new ArrayList();
            for (TelefoneFormulario t : telefones) {
                if (!t.getTel_numero().equals("") && !t.getTel_tipo().equals("")) {
                    Telefone tel = new Telefone();
                    tel.setPes_id(cliente);
                    tel.setTel_numero(t.getTel_numero());
                    tel.setTel_tipo(Integer.parseInt(t.getTel_tipo()));
                    lista_telefones.add(tel);
                }
            }

            clienteDao.atualizar(cliente);
            formularioCliente = false;

            /*try {
             TelefoneDao telefoneDao = new TelefoneDao();
             for (TelefoneFormulario t : telefones) {
             if (!t.getTel_numero().equals("") && !t.getTel_tipo().equals("")) {
             Telefone tel = new Telefone();
             tel.setPes_id(cliente);
             tel.setTel_numero(t.getTel_numero());
             tel.setTel_tipo(Integer.parseInt(t.getTel_tipo()));
             //telefoneDao.incluir(tel);
             }
             }
             formularioCliente = false;
             } catch (ConstraintViolationException e) {
             FacesContext.getCurrentInstance().addMessage("alterarCliente:codigoMessage", new FacesMessage(FacesMessage.SEVERITY_ERROR, "", "Código já existente para outro cliente"));
             // falta consertar para mostrar só o campo do EXCEPTION
             }*/
        }
        return null;
    }
}
Ocultei os getters e setters do code... ManagedProperty:
@ManagedBean(name = "comboBean")
@ViewScoped
public class ComboBean implements Serializable {
    private final EstadoDao estDao = new EstadoDao();
    private final CidadeDao cidDao = new CidadeDao();
    private List<Estado> estados;
    private List<Cidade> cidades;
    private Cidade cidade;
    private Estado estado;

    public ComboBean(){
        if (cidade == null) {
            cidade = new Cidade();
        }
        if (estado == null) {
            estado = new Estado();
        }
        estados = estDao.listarTodos();
    }

    public void listaCidades(AjaxBehaviorEvent event) {
        cidades = cidDao.listarTodos(estado);
    }

    public Cidade getCidade() {
        return cidade;
    }

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

    public List<Cidade> getCidades() {
        return cidades;
    }

    public void setCidades(List<Cidade> cidades) {
        this.cidades = cidades;
    }

    public Estado getEstado() {
        System.out.println("Getting: "+estado.getEst_nome());
        return estado;
    }

    public void setEstado(Estado estado) {
        this.estado = estado;
        cidades = cidDao.listarTodos(estado);
        System.out.println("Setando: "+estado.getEst_nome());
    }

    public List<Estado> getEstados() {
        return estados;
    }

    public void setEstados(List<Estado> estados) {
        this.estados = estados;
    }
}
xhtml:
<p:column>
                                    <div class="formuinput">
                                        <p:selectOneMenu id="estado" value="#{comboBean.estado}" converter="converterEstado" >
                                            <f:selectItem itemLabel="Selecione" />
                                            <f:selectItems value="#{comboBean.estados}" var="e" itemValue="#{e}" itemLabel="#{e.est_nome}" />
                                            <f:ajax render="cidade" event="change" listener="#{comboBean.listaCidades}" />
                                        </p:selectOneMenu>
                                    </div>
                                    <div class="formuerror">
                                        <p:message id="estadoMessage" for="estadoMessage" />  
                                    </div> 
                                </p:column>
                            </p:row>


                            <p:row>
                                <p:column styleClass="formu">
                                    <h:outputLabel for="cidade" value="Cidade" />
                                </p:column>
                                <p:column>
                                    <div class="formuinput">
                                        <p:selectOneMenu id="cidade" value="#{comboBean.cidade}" converter="converterCidade" >
                                            <f:selectItem itemLabel="Selecione" />
                                            <f:selectItems value="#{comboBean.cidades}" var="c" itemValue="#{c}" itemLabel="#{c.cid_nome}" />
                                        </p:selectOneMenu>
                                    </div>
                                    <div class="formuerror">
                                        <p:message id="cidadeMessage" for="cidadeMessage" />  
                                    </div> 
                                </p:column>

Os outros campos do formulario está tudo ok, exibe a informação correta, agora o comboBean está executando o construtor duas vezes, na primeira vez ele passo o objeto Estado corretamente, ai ele executa o construtor novamente, e fica tudo como null...
Alguem consegue enxergar a minha cagadinha? hahuhuahua

Obrigado desde já!

2 Respostas

F
faelzindc:
Eu sei que o construtor do ManagedProperty comboBean esta sendo executado duas vezes, alguem sabe me dizer o pq? Cliente ManagedBean:
@ManagedBean(name = "alterarClienteBean")
@ViewScoped
public class AlterarClienteBean implements Serializable {
    private long pes_id;
    private String codigo;
    private String razao;
    private String cnpj;
    private String ie;
    private String loja;
    private String nome;
    private String email;
    private String endereco;
    private String bairro;
    private String cep;
    @ManagedProperty(value = "#{comboBean}")
    private ComboBean comboBean;
    private boolean formularioCliente;
    private List<TelefoneFormulario> telefones = new ArrayList<TelefoneFormulario>();
    private String telefone;
    private String tipoTelefone;
    private Vendedor vendedor;

    public AlterarClienteBean() {
        try{
            pes_id = Long.parseLong(FacesContext.getCurrentInstance().getExternalContext().getRequestParameterMap().get("id"));
        }catch(Exception e){
            pes_id = 0;
        }
        if (pes_id == 0) {
            System.out.println("Erro: id vazio!");
        } else {
            ClienteDao clienteDao = new ClienteDao();
            Cliente cliente = clienteDao.getClienteById(pes_id);
            HttpSession hs = (HttpSession) FacesContext.getCurrentInstance().getExternalContext().getSession(true);
            VendedorLogin vendedorLogin = (VendedorLogin) hs.getAttribute("currentUser");

            VendedorDao vendedorDao = new VendedorDao();
            vendedor = vendedorDao.getVendedorByCod(vendedorLogin.getCodigo());

            if (cliente.getVen_id().getPes_id() != vendedor.getPes_id()) {
                System.out.println("Cliente não é desse vendedor! ID_C: " + cliente.getVen_id().getPes_id() + " ID_V: " + vendedor.getPes_id());
            } else {
                codigo = String.valueOf(cliente.getCli_codigo());
                razao = cliente.getCli_razao();
                cnpj = cliente.getCli_cnpj();
                ie = cliente.getCli_ie();
                loja = String.valueOf(cliente.getCli_loja());
                nome = cliente.getPes_nome();
                email = cliente.getPes_email();
                endereco = cliente.getPes_endereco();
                bairro = cliente.getPes_bairro();
                cep = cliente.getPes_cep();
                if(comboBean == null){ 
                    comboBean = new ComboBean();
                    comboBean.setEstado(cliente.getCid_id().getEst_id());
                    comboBean.setCidade(cliente.getCid_id());
                }
                telefone = "";
                tipoTelefone = "1";
                telefones = new ArrayList();
                TelefoneDao telefoneDao = new TelefoneDao();
                List<Telefone> telefones_temp;
                telefones_temp = telefoneDao.getTelefoneByPesId(cliente);
                for (Telefone t : telefones_temp) {
                    TelefoneFormulario tel_form = new TelefoneFormulario();
                    tel_form.setTel_numero(t.getTel_numero());
                    tel_form.setTel_tipo(String.valueOf(t.getTel_tipo()));
                    telefones.add(tel_form);
                }
            }
        }
        formularioCliente = true;
    }


    public String adicionarTelefone() {
        if (!telefone.equals("")) {
            for (TelefoneFormulario t : telefones) {
                if (t.getTel_numero().equals(telefone) && t.getTel_tipo().equals(tipoTelefone)) {
                    telefone = "";
                    tipoTelefone = "1";
                    return null;
                }
            }
            TelefoneFormulario tempTel = new TelefoneFormulario();
            tempTel.setTel_numero(telefone);
            tempTel.setTel_tipo(tipoTelefone);
            telefones.add(tempTel);
            telefone = "";
            tipoTelefone = "1";
        }
        return null;
    }

    public String removerTelefone() {
        for (TelefoneFormulario t : telefones) {
            if (t.getTel_numero().equals(telefone) && t.getTel_tipo().equals(tipoTelefone)) {
                telefones.remove(t);
                break;
            }
        }
        telefone = "";
        tipoTelefone = "1";
        return null;
    }

    public String validarForm() {
        boolean erro = false;
        if (codigo.equals("")) {
            FacesContext.getCurrentInstance().addMessage("alterarCliente:codigoMessage", new FacesMessage(FacesMessage.SEVERITY_ERROR, "", "Campo obrigatório"));
            erro = true;
        }
        if (razao.equals("")) {
            FacesContext.getCurrentInstance().addMessage("alterarCliente:razaoMessage", new FacesMessage(FacesMessage.SEVERITY_ERROR, "", "Campo obrigatório"));
            erro = true;
        }
        if (cnpj.equals("")) {
            FacesContext.getCurrentInstance().addMessage("alterarCliente:cnpjMessage", new FacesMessage(FacesMessage.SEVERITY_ERROR, "", "Campo obrigatório"));
            erro = true;
        } else {
            CNPJValidator validator = new CNPJValidator();
            try {
                validator.assertValid(cnpj);
            } catch (InvalidStateException e) {
                //for (ValidationMessage message : e.getInvalidMessages()) {
                FacesContext.getCurrentInstance().addMessage("alterarCliente:cnpjMessage", new FacesMessage(FacesMessage.SEVERITY_ERROR, "", "CNPJ invalido"));
                erro = true;
                //}
            }
        }
        if (ie.equals("")) {
            FacesContext.getCurrentInstance().addMessage("alterarCliente:ieMessage", new FacesMessage(FacesMessage.SEVERITY_ERROR, "", "Campo obrigatório"));
            erro = true;
        }
        if (Integer.parseInt(loja) < 1) {
            FacesContext.getCurrentInstance().addMessage("alterarCliente:lojaMessage", new FacesMessage(FacesMessage.SEVERITY_ERROR, "", "Dado inválido"));
            erro = true;
        }
        if (nome.equals("")) {
            FacesContext.getCurrentInstance().addMessage("alterarCliente:nomeMessage", new FacesMessage(FacesMessage.SEVERITY_ERROR, "", "Campo obrigatório"));
            erro = true;
        }
        if (email.equals("")) {
            FacesContext.getCurrentInstance().addMessage("alterarCliente:emailMessage", new FacesMessage(FacesMessage.SEVERITY_ERROR, "", "Campo obrigatório"));
            erro = true;
        }
        if (endereco.equals("")) {
            FacesContext.getCurrentInstance().addMessage("alterarCliente:enderecoMessage", new FacesMessage(FacesMessage.SEVERITY_ERROR, "", "Campo obrigatório"));
            erro = true;
        }
        if (bairro.equals("")) {
            FacesContext.getCurrentInstance().addMessage("alterarCliente:bairroMessage", new FacesMessage(FacesMessage.SEVERITY_ERROR, "", "Campo obrigatório"));
            erro = true;
        }
        if (cep.equals("")) {
            FacesContext.getCurrentInstance().addMessage("alterarCliente:cepMessage", new FacesMessage(FacesMessage.SEVERITY_ERROR, "", "Campo obrigatório"));
            erro = true;
        }
        if (getComboBean().getEstado() == null) {
            FacesContext.getCurrentInstance().addMessage("alterarCliente:estadoMessage", new FacesMessage(FacesMessage.SEVERITY_ERROR, "", "Campo obrigatório"));
            erro = true;
        }
        if (getComboBean().getCidade() == null) {
            FacesContext.getCurrentInstance().addMessage("alterarCliente:cidadeMessage", new FacesMessage(FacesMessage.SEVERITY_ERROR, "", "Campo obrigatório"));
            erro = true;
        }

        if (erro == false) {
            ClienteDao clienteDao = new ClienteDao();
            Cliente cliente = clienteDao.getClienteById(pes_id);
            cliente.setCid_id(getComboBean().getCidade());
            cliente.setCli_cnpj(cnpj);
            cliente.setCli_codigo(Long.parseLong(codigo));
            cliente.setCli_ie(ie);
            cliente.setCli_loja(Integer.parseInt(loja));
            cliente.setCli_razao(razao);
            cliente.setPes_bairro(bairro);
            cliente.setPes_cep(cep);
            cliente.setPes_email(email);
            cliente.setPes_endereco(endereco);
            cliente.setPes_nome(nome);

            List<Telefone> lista_telefones = new ArrayList();
            for (TelefoneFormulario t : telefones) {
                if (!t.getTel_numero().equals("") && !t.getTel_tipo().equals("")) {
                    Telefone tel = new Telefone();
                    tel.setPes_id(cliente);
                    tel.setTel_numero(t.getTel_numero());
                    tel.setTel_tipo(Integer.parseInt(t.getTel_tipo()));
                    lista_telefones.add(tel);
                }
            }

            clienteDao.atualizar(cliente);
            formularioCliente = false;

            /*try {
             TelefoneDao telefoneDao = new TelefoneDao();
             for (TelefoneFormulario t : telefones) {
             if (!t.getTel_numero().equals("") && !t.getTel_tipo().equals("")) {
             Telefone tel = new Telefone();
             tel.setPes_id(cliente);
             tel.setTel_numero(t.getTel_numero());
             tel.setTel_tipo(Integer.parseInt(t.getTel_tipo()));
             //telefoneDao.incluir(tel);
             }
             }
             formularioCliente = false;
             } catch (ConstraintViolationException e) {
             FacesContext.getCurrentInstance().addMessage("alterarCliente:codigoMessage", new FacesMessage(FacesMessage.SEVERITY_ERROR, "", "Código já existente para outro cliente"));
             // falta consertar para mostrar só o campo do EXCEPTION
             }*/
        }
        return null;
    }
}
Ocultei os getters e setters do code... ManagedProperty:
@ManagedBean(name = "comboBean")
@ViewScoped
public class ComboBean implements Serializable {
    private final EstadoDao estDao = new EstadoDao();
    private final CidadeDao cidDao = new CidadeDao();
    private List<Estado> estados;
    private List<Cidade> cidades;
    private Cidade cidade;
    private Estado estado;

    public ComboBean(){
        if (cidade == null) {
            cidade = new Cidade();
        }
        if (estado == null) {
            estado = new Estado();
        }
        estados = estDao.listarTodos();
    }

    public void listaCidades(AjaxBehaviorEvent event) {
        cidades = cidDao.listarTodos(estado);
    }

    public Cidade getCidade() {
        return cidade;
    }

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

    public List<Cidade> getCidades() {
        return cidades;
    }

    public void setCidades(List<Cidade> cidades) {
        this.cidades = cidades;
    }

    public Estado getEstado() {
        System.out.println("Getting: "+estado.getEst_nome());
        return estado;
    }

    public void setEstado(Estado estado) {
        this.estado = estado;
        cidades = cidDao.listarTodos(estado);
        System.out.println("Setando: "+estado.getEst_nome());
    }

    public List<Estado> getEstados() {
        return estados;
    }

    public void setEstados(List<Estado> estados) {
        this.estados = estados;
    }
}
xhtml:
<p:column>
                                    <div class="formuinput">
                                        <p:selectOneMenu id="estado" value="#{comboBean.estado}" converter="converterEstado" >
                                            <f:selectItem itemLabel="Selecione" />
                                            <f:selectItems value="#{comboBean.estados}" var="e" itemValue="#{e}" itemLabel="#{e.est_nome}" />
                                            <f:ajax render="cidade" event="change" listener="#{comboBean.listaCidades}" />
                                        </p:selectOneMenu>
                                    </div>
                                    <div class="formuerror">
                                        <p:message id="estadoMessage" for="estadoMessage" />  
                                    </div> 
                                </p:column>
                            </p:row>


                            <p:row>
                                <p:column styleClass="formu">
                                    <h:outputLabel for="cidade" value="Cidade" />
                                </p:column>
                                <p:column>
                                    <div class="formuinput">
                                        <p:selectOneMenu id="cidade" value="#{comboBean.cidade}" converter="converterCidade" >
                                            <f:selectItem itemLabel="Selecione" />
                                            <f:selectItems value="#{comboBean.cidades}" var="c" itemValue="#{c}" itemLabel="#{c.cid_nome}" />
                                        </p:selectOneMenu>
                                    </div>
                                    <div class="formuerror">
                                        <p:message id="cidadeMessage" for="cidadeMessage" />  
                                    </div> 
                                </p:column>

Os outros campos do formulario está tudo ok, exibe a informação correta, agora o comboBean está executando o construtor duas vezes, na primeira vez ele passo o objeto Estado corretamente, ai ele executa o construtor novamente, e fica tudo como null...
Alguem consegue enxergar a minha cagadinha? hahuhuahua

Obrigado desde já!

Eu percebi que o que ta criando o segundo construtor, é o meu formulario no xhtml do comboBean, alguem me da uma luz do que preciso fazer?

F

Consegui resolver, o problema é que eu tava usando construtor, mudei tudo para PostConstruct e resolveu…
Irei dar uma lida sobre o construtor e postconstruct, pq nem imagino a diferença deles.
Quem tiver um bom material sobre esses dois assuntos e suas diferenças, pode me indicar?

Obrigado!

Criado 20 de novembro de 2012
Ultima resposta 20 de nov. de 2012
Respostas 2
Participantes 1