inputText JSF + Primefaces não popula bean [Resolvido]

Boa noite a todos, direto ao ponto, alguém sabe me falar porque meu campo de nomeProduto não está sendo populado? O projeto não possui erro de compilação, não apresenta erro de javascript no firebug e não é lançado nenhuma exception no console, simplismente não popula. Detalhe que os demais atributos da mesma classe são setados normalmente. Desde já agradeço pela atenção, ajuda e segue os trechos de código relevantes:

novaCotacao.xhtml

<p:fieldset legend="Pedido"> <h:panelGrid columns="3" cellpadding="2"> <h:outputLabel value="Fornecedor"/> <h:outputLabel value=""/> <h:outputLabel value="Produto"/> <p:inputText value="#{cotacaoMB.pedidoCotacao.fornecedor.nome}" readonly="true" maxlength="50" size="35"/> <f:ajax disabled="false"> <h:commandButton onclick="selecaoFornecedor.show();" type="button" image="/imagens/search_22x22.png" /> </f:ajax> <p:inputText value="#{cotacaoMB.pedidoCotacao.nomeProduto}" title="teste"/> </h:panelGrid> <h:panelGrid columns="5" cellpadding="2"> <h:outputLabel value="Valor"/> <h:outputLabel value="Quantidade"/> <h:outputLabel value="Frete"/> <h:outputLabel value="Total"/> <h:outputLabel value=""/> <p:inputText value="#{cotacaoMB.pedidoCotacao.valor}"> <p:ajax event="blur" listener="#{cotacaoMB.calcularTotal}" update="totalPedido"/> </p:inputText> <p:inputText value="#{cotacaoMB.pedidoCotacao.quantidade}"> <p:ajax event="blur" listener="#{cotacaoMB.calcularTotal}" update="totalPedido"/> </p:inputText> <p:inputText value="#{cotacaoMB.pedidoCotacao.frete}"> <p:ajax event="blur" listener="#{cotacaoMB.calcularTotal}" update="totalPedido"/> </p:inputText> <p:inputText id="totalPedido" value="#{cotacaoMB.pedidoCotacao.total}" readonly="true"/> <h:commandButton image="/imagens/add_24x24.png"> <p:ajax event="click" listener="#{cotacaoMB.adicionarPedido}" update="tabelaPedidos, gridPedido, menssagens"/> </h:commandButton> </h:panelGrid>

CotacaoMB

[code]@SessionScoped
@ManagedBean(name=“cotacaoMB”)
public class CotacaoMB {

//atributos da cotacao
private Cotacao cotacao;	
private CotacaoBO cotacaoBO;
private PedidoCotacao pedidoCotacao;

    public CotacaoMB(){
	//cotacao
	cotacaoBO = new CotacaoBO();
	cotacao = new Cotacao();		
	pedidoCotacao = new PedidoCotacao();
   } 

public PedidoCotacao getPedidoCotacao() {
	return pedidoCotacao;
}

public void setPedidoCotacao(PedidoCotacao pedidoCotacao) {
	this.pedidoCotacao = pedidoCotacao;
}[/code]

PedidoCotacao

[code]@Entity
@Table(name=“pedido_cotacao”, schema=“pgi”)
public class PedidoCotacao {

private Integer idPedidoCotacao;
private Cotacao cotacao;
private Fornecedor fornecedor;
private String nomeProduto;
private BigDecimal valor;
private BigDecimal quantidade;
private BigDecimal frete;
private BigDecimal total;

//gets sets e mapeamentos
[/code]

Tenta instanciar o Cotacao e Fornecedor de dentro do PedidoCotacao no construtor:

pedidoCotacao.setFornecedor(new Fornecedor());
pedidoCotacao.setCotacao(new Cotacao());

Acho que ta nulo esses objetos, por isso não está populando, veja se está dando um NullPointerException no console ou algo assim, pois em chamada ajax as exeções o tomcat não pega, apenas para a aplicação.

Não creio que o problema seja este, até porque como eu disse, os demais campos da mesma classe são populados, ou seja, o fornecedor o valor do produto a quantidade o total o frete tudo populado, menos o campo nomePedido.

Ao invés de utilizar um h:commandButton, tente um p:commandButton com actionListener, e lembre de deixar todos os campos dentro do mesmo h:form.

ai que ta um outro problema, estou utilizando h:commandButton com p:ajax porque por algum motivo que eu n descobri qual alguns commandbutton com actionListener deste form não estão chamando os métodos no managebean, sem falar da dificuldade que é pra colocar um icone em um botão primefaces

Bom, resolvi da seguinte forma, um pouco atrasado por falta de tempo mas vim postar minha solução. Não ficou bonito e também não tenho uma explicação lógica para isto mas funcionou e quem sabe não ajude alguém futuramente hehehe.

<p:inputText value="#{cotacaoMB.pedidoCotacao.nomeProduto}"> <p:ajax event="blur" listener="cotacaoBM.pedidoCotacao.nomeProduto}"/> </p:inputText>

[quote=Gabriel Garcia]Bom, resolvi da seguinte forma, um pouco atrasado por falta de tempo mas vim postar minha solução. Não ficou bonito e também não tenho uma explicação lógica para isto mas funcionou e quem sabe não ajude alguém futuramente hehehe.

<p:inputText value="#{cotacaoMB.pedidoCotacao.nomeProduto}"> <p:ajax event="blur" listener="cotacaoBM.pedidoCotacao.nomeProduto}"/> </p:inputText> [/quote]

Boa tarde Gabriel, você já descobriu o motivo desse erro?