Por que ta recebendo null as informações?

3 respostas
maiconkf

Eu não entendo por que não ta funcionando o cadastro de orçamento!
Todos os outros cadastros tão iguais a ele!

Segue o código:

package tcc.sislog.mng;

import java.io.Serializable;
import java.util.Date;
import java.util.List;
import javax.ejb.EJB;
import javax.faces.application.FacesMessage;
import javax.faces.bean.ManagedBean;
import javax.faces.bean.ManagedProperty;
import javax.faces.bean.RequestScoped;
import javax.faces.context.FacesContext;
import javax.faces.event.AjaxBehaviorEvent;
import javax.inject.Named;
import tcc.sislog.bean.Cliente;
import tcc.sislog.bean.Material;
import tcc.sislog.bean.Orcamento;
import tcc.sislog.dao.MaterialDAORemote;
import tcc.sislog.dao.OrcamentoDAORemote;

/**
 *
 * @author maiconkf
 */
@Named(value = "orcamentoMNG")
@ManagedBean
@RequestScoped
public class OrcamentoMNG implements Serializable {

    private final String UPDATE = "atualizar";
    @EJB
    OrcamentoDAORemote dao;
    @EJB
    MaterialDAORemote daoMaterial;
    private List<Orcamento> listaOrcamento;
    private String id;
    private Date previsaoColeta;
    private int quantidade;
    // private double precoUnitario;
    private double valorTotal;
    @ManagedProperty(value = "#{materialMNG}")
    private Material material;
    @ManagedProperty(value = "#{clienteMNG}")
    private Cliente cliente;
    private String acao;

    public Cliente getCliente() {
        return cliente;
    }

    public void setCliente(Cliente cliente) {
        this.cliente = cliente;
    }

    public String getId() {
        return id;
    }

    public void setId(String id) {
        this.id = id;
    }

    public List<Orcamento> getListaOrcamento() {
        listaOrcamento = dao.listaTodos();
        return listaOrcamento;
    }

    public Material getMaterial() {
        return material;
    }

    public void setMaterial(Material material) {
        this.material = material;
    }

    public double getValorTotal() {
        return valorTotal;
    }

    public void setValorTotal(double valorTotal) {
        this.valorTotal = valorTotal;
    }

    public Date getPrevisaoColeta() {
        return previsaoColeta;
    }

    public void setPrevisaoColeta(Date previsaoColeta) {
        this.previsaoColeta = previsaoColeta;
    }

    public int getQuantidade() {
        return quantidade;
    }

    public void setQuantidade(int quantidade) {
        this.quantidade = quantidade;
    }

    public Orcamento getOrcamento(Long id) {
        Orcamento agrup = new Orcamento();
        agrup.setId(id);
        return dao.retrieve(agrup);
    }

    public String getAcao() {
        return acao;
    }

    public void setAcao(String acao) {
        this.acao = acao;
    }

    public String remove() {
        Long index = Long.valueOf(FacesContext.getCurrentInstance().getExternalContext().getRequestParameterMap().get("codExcluir").toString());
        Orcamento orcamento = new Orcamento();
        orcamento.setId(index);
        dao.delete(orcamento);
        return "orcamento";
    }

    public void clear(AjaxBehaviorEvent event) {
        this.id = null;
        this.previsaoColeta = null;
    }

    public String prepUpdate() {
        Long index = Long.valueOf(FacesContext.getCurrentInstance().getExternalContext().getRequestParameterMap().get("codEditar").toString());
        System.out.println("alterar" + index);
        Orcamento orcamento = new Orcamento();
        orcamento.setId(index);
        orcamento = dao.retrieve(orcamento);

        this.id = orcamento.getId().toString();
//        this.previsaoColeta = orcamento.getPrevisaoColeta();
        this.material = orcamento.getMaterial();
        this.valorTotal = orcamento.getValorTotal();
        this.quantidade = orcamento.getQuantidade();
        this.cliente = orcamento.getCliente();
        // this.precoUnitario = orcamento.getPrecounitario();
        this.acao = UPDATE;
        return "neworcamento";
    }

    public void actionSalvar() {
        System.out.println("actionevent");
        if (UPDATE.equals(this.acao)) {
            System.out.println("update");
            update();

        } else {
            System.out.println("save");
            System.out.println("Teste: " + previsaoColeta);
            System.out.println("Teste: " + cliente);
            System.out.println("Teste: " + quantidade);
            System.out.println("Teste: " + valorTotal);
            System.out.println("Teste: " + material);
            Orcamento orcamento = new Orcamento();
            orcamento.setPrevisaoColeta(previsaoColeta);
            orcamento.setCliente(cliente);
            orcamento.setQuantidade(quantidade);
            orcamento.setValorTotal(valorTotal);
            orcamento.setMaterial(material);
            dao.create(orcamento);
            FacesContext.getCurrentInstance().addMessage(null, new FacesMessage(FacesMessage.SEVERITY_INFO, "Cadastro Realizado Com Sucesso !", ""));
            this.clear(null);
        }
    }

    public void update() {
        Orcamento orcamento = new Orcamento();
        orcamento.setId(Long.valueOf(id));
        orcamento.setCliente(cliente);
        orcamento.setMaterial(material);
//        orcamento.setPrevisaoColeta(previsaoColeta);
        orcamento.setQuantidade(quantidade);
        orcamento.setValorTotal(valorTotal);
        dao.update(orcamento);
        FacesContext.getCurrentInstance().addMessage(null, new FacesMessage(FacesMessage.SEVERITY_INFO, "Registro alterado com sucesso!", ""));
        this.clear(null);
    }
<?xml version='1.0' encoding='UTF-8' ?>
<!DOCTYPE html>
<html xmlns="http://www.w3.org/1999/xhtml"
      xmlns:p="http://primefaces.org/ui"
      xmlns:ui="http://java.sun.com/jsf/facelets"
      xmlns:f="http://java.sun.com/jsf/core"
      xmlns:h="http://java.sun.com/jsf/html">

    <ui:composition template="/WEB-INF/template/default.xhtml">
        <ui:define name="centro">
            <div align="left">
                <h:form>
                    <p:tabView id="tabView" style="width: 100%">

                        <p:tab id="tab1" title="Orçamento">
                            <p:panelGrid id="teste" style="margin-top:2px; width: 100%;">
                                <f:facet name="header">

                                    <p:row>
                                        <p:column colspan="2">Cadastro Orçamento</p:column>
                                    </p:row>
                                </f:facet>

                                <p:row>
                                    <p:column style="font-weight: bold;">ID</p:column>
                                    <p:column><p:inputText id="id" value="#{orcamentoMNG.id}" label="ID" size="5" disabled="true"> 
                                        </p:inputText>
                                    </p:column>
                                </p:row>

                                <p:row>
                                    <p:column style="font-weight: bold;">Quantidade</p:column>
                                    <p:column><p:inputText value="#{orcamentoMNG.quantidade}" size="24" id="quantidade"/> </p:column>
                                </p:row>

                            </p:panelGrid>   
                            <h:inputHidden value="#{orcamentoMNG.acao}"/>
                            <p:messages id="msg" showDetail="true" autoUpdate="true"  />
                            <p:commandButton  value="Salvar"  actionListener="#{orcamentoMNG.actionSalvar()}"/>
                        </p:tab>



                        <p:tab id="tab4" title="Rota">
                        </p:tab>

                    </p:tabView>

                </h:form>

            </div>
        </ui:define>
    </ui:composition>


</html>

Se precisarem do bean e do DAO, eu posso enviar!

Me deem uma luz!

3 Respostas

Hebert_Coelho

Eu não entendo como qualquer outro está funcionando.

@Named(value = "orcamentoMNG") @ManagedBean @RequestScoped Sério mesmo?! Ou você escolhe CDI ou ManagedBean.

Aqui tem um exemplo utilizando ManagedBean caso te interesse pesquisar. Aplicação Web Completa Tomcat JSF Primefaces JPA Hibernate

maiconkf

jakefrog:
Eu não entendo como qualquer outro está funcionando.

@Named(value = "orcamentoMNG") @ManagedBean @RequestScoped Sério mesmo?! Ou você escolhe CDI ou ManagedBean.

Aqui tem um exemplo utilizando ManagedBean caso te interesse pesquisar. Aplicação Web Completa Tomcat JSF Primefaces JPA Hibernate

bah, nem tinha me ligado nisso kk
mas, tipo… segundo esse link: http://www.mkyong.com/jsf2/injecting-managed-beans-in-jsf-2-0/, o MenagedBean não tem nenhum “name” e nem o @Named

mas eu preciso de orcamentoMNG! se eu deixar só:

@ManagedBean(name="orcamentoMNG")

ele dá esse erro:
com.sun.faces.mgbean.ManagedBeanCreationException: Não é possível definir a propriedade material para o bean gerenciado orcamentoMNG.

é a primeira vez que eu trabalho utilizando @ManagedBean, ao inves de @Named

Alys

Cara, é o que o jakefrog já lhe disse:

Mas isso vale é para o projeto inteiro. Não adianta você usar só @Named em uma classe, e na outra usar só @ManagedBean. Sugiro dar uma lida no tutorial dele, principalmente na página 6.

Com relação ao erro que você está tendo:

O problema não está na classe OrcamentoMNG, e sim na referência para a classe Material. Dá uma olhada um pouco mais atenta ao link que você postou, do Mkyong.com, olha como ele declarou a classe MessageBean lá.

Criado 3 de setembro de 2012
Ultima resposta 4 de set. de 2012
Respostas 3
Participantes 3