P:commandbutton não chama método do bean

Bão, estou com um erro estranho …
Tenho um commandobutton em uma tela que chama um Método em um Bean, até nada de anormal, o problema é quando tentei criar outro commandbutton e não consigo chamar o método e estou tendo esse problema com alguns botões de minha tela, alguem ja passou por isso ??

<p:commandButton value="Adicionar" ajax="true" update="formPos" immediate="true" actionListener="#{funcionarioBean.adicionaCurso}" icon="ui-icon ui-icon-disk"/>

[code]public void adicionaCurso(){

	CursoRepository cr = new CursoRepository(getEntityManager());
	curso.setFuncionario(getFuncionario());
	curso.setDataCadastro(new Date());
	curso.setHoraCadastro(new Date());
	curso.setUsuarioCadastro(getUsuarioSessao());
	System.out.println("ANTES DE GRAVAR");
	cr.gravar(curso);
	System.out.println("DEPOIS DE GRAVAR");
	curso = new Curso();
	cursoPorFuncionario();

}[/code]

Provavelmente há algum erro na criação dos componentes da tela que está impedindo os botões de executarem suas ações.
Usando o firebug (ou similar) você consegue depurar e ver onde é o erro.

Certo, no Firebug ele me traria o Id do componente que não esta sendo “criado” ?

Não, você precisa ver o que está ocorrendo de errado na renderização dos componentes.

Certo … vou ver o que consigo aqui …

Bem, instalei ele aqui … não sei usa-lo então não sei como analisar os resultados das ferramentas … Mas vi que quando executo o botão as informações dos campos estão carregadas …
Pois bem, vc saberia me dizer “o que” preciso procurar ?

cadastroFuncionario:dados... cadastroFuncionario:dadosDiversos:formPos cadastroFuncionario:dados... POS cadastroFuncionario:dados... POS cadastroFuncionario:dados... C cadastroFuncionario:dados... 29/05/2013 cadastroFuncionario:dados... 29/05/2013 cadastroFuncionario:dados... cadastroFuncionario:dadosDiversos:formPos:j_idt195:j_idt210 cadastroFuncionario:dados... 0 javax.faces.ViewState 8093414117231008368:6790396580739241715 javax.faces.partial.ajax true javax.faces.partial.execu... @all javax.faces.partial.rende... :formPos javax.faces.source cadastroFuncionario:dadosDiversos:formPos:j_idt195:j_idt210

Quando você clica em um p:commandButton ou num p:commandLink ele espera que todos os elementos da página estejam de acordo.
Pode ser que algum deles necessite de um converter (ou espere um converter), pode ser que algum deles esteja vazio e não deveria estar vazio.
Há muitas possibilidades.
O que você precisa tentar é identificar algo que esteja fora do normal.

Tenta deixa o ajax=“false” pra ver

Certo, vamos lá então.
Quanto ao converter não uso nada nessa página que necessite dele.
Existem alguns campos “obrigatórios” mas eles já estão preenchidos.
Pensando por esse lado, o uso do Immediate=true já deveria resolver não acha ? Ou estou falando besteira ?

Com ajax false tb não vai e tb não quero que seja rendenizada a tela toda …

Não vi na sua demonstração o commandButton dentro de um h:form amigo…

vou postar o código todo !! Detalhe: esse é o commandbutton que funfa !!

[code]

<h:form id=“formFormacao” prependId=“false”>
<p:accordionPanel>

	<p:tab title="Formulário" id="tabFormacoes">
	
		<h:panelGrid columns="2" columnClasses="colunaEsquerda,colunaDireita">
			<h:outputText value="Curso: "/>
			<p:inputText value="#{funcionarioBean.formacao.curso}"
						 size="50"
						 onkeydown="this.value = this.value.toUpperCase();"
						 id="nomeFormacao"/>
									
			<h:outputText value="Instituição: "/>
			<p:inputText value="#{funcionarioBean.formacao.instituicao}"
						 size="75"
						 onkeydown="this.value = this.value.toUpperCase();"
						 id="instituicaoFormacao"/>
										
			<h:outputText value="Situação: "/>
			<p:selectOneMenu value="#{funcionarioBean.formacao.situacao}" id="situacaoFormacao">
				<f:selectItem itemLabel="Escolha "  itemValue=""/>			 
				<f:selectItem itemLabel="Cursando"  itemValue="C"/>
				<f:selectItem itemLabel="Concluído" itemValue="F"/>			 
			</p:selectOneMenu>
										
			<h:outputText value="Início: "/>
			<p:calendar value="#{funcionarioBean.formacao.dataInicio}"
						size="10"
						pattern="dd/MM/yyyy"
						locale="pt_BR"
						id="inicioFormacao"/> 
										
			<h:outputText value="Conclusão: "/>
			<p:calendar value="#{funcionarioBean.formacao.dataConclusao}"
						size="10"
						pattern="dd/MM/yyyy"
						locale="pt_BR"
						id="conclusaoFormacao"/>
									
			<p:commandButton value="Salvar" ajax="false" update="formFormacao" immediate="true" id="btnSalvarFormacao"
					actionListener="#{funcionarioBean.adicionaFormacao}" icon="ui-icon ui-icon-disk"/>
					   		
		 	<p:commandButton value="Limpar" update="formFormacao" action="#{funcionarioBean.limparFormacao}"
		   					icon="ui-icon ui-icon-trash" immediate="true" process="@this" id="btnLimparFormacao">
				<pe:resetEditableValues for="formFormacao"/>			
			</p:commandButton>							 
		</h:panelGrid>
	</p:tab>	
</p:accordionPanel>

</h:form>

[/code]

Esse não funfa !!

<p:commandButton value="Adicionar" ajax="true" update=":cadastroFuncionario:formPos" immediate="true" id="btnAddPos" actionListener="#{funcionarioBean.adicionaPos}" icon="ui-icon ui-icon-disk"/>

Amigo, tira o immediate e no seu método adicionaCurso coloca assim na declaração dele:

public void adicionaCurso(ActionEvent event){
//Seu Código Aqui
}

Infelizmente a mesma coisa !!!

vai estreitando seu problema até ter certeza do que é.

Já colocou a action desse botão que não funciona num desses botões que funcionam e viu o que acontece?

Já debugou o método para ver se o botão está realmente chamando ele?

Já olhou no console do firebug o que ele diz quando vc clica no botão?

Então … Esse command que chama o método, ele chama qualquer um que eu ligar nele, quanto que os outros não, ele não chama …

Vc está querendo dizer, que quando vc coloca sua action

nos botões salvar ou limpar e ele não entra no método. é isso?

e quanto ao firebug, o que ele diz?

Não cara … assim, vou tentar explicar melhor …
Naquele formulário de Formações, tem um commandbutton que chama qualquer método que eu ligar nele …
Porém eu tenho outros formulários com outros commandbutton que NÃO chamam os métodos … Porém, se eu ligar esses métodos que não são chamados ao command que esta no Formulário de Formações o método é chamado !!

cara, eu tive um problema do tipo

tua pagina, ta tentando carregar uma outra pagina no meio de uma principal? ou algo assim?
exemplo: clica numa opção do menu e depois aparece a outra pagina no centro da principal?

se sim, tenta executar só essa pagina que vai ser carregada no meio e testa se teu botao vai funcionar.
se funcionar, cria um template pra ser a pagina principal, foi o que eu fiz.

cara tenta assim no xhtml

<p:commandButton value="Adicionar Preço"
                                 ajax="false" type="submit"
                                 actionListener="#{Bean.metodo()}"/>

bean

 public void metodo(){
        
    }

poem em debug e ve se vai entrar no metodo…

lembre - se de usar um form por pagina, e verifique se vc esta nao esta passando um valor diferente para bean por exemplo um campo int no <p:inputMask