Problema com o <f:ajax />

4 respostas
L

Tenho o seguinte codigo:
xhtml:

&lt;h:selectOneMenu id="listMesesInicio" value="#{ProgramaProjetoMBean.mesInicio}"&gt;
							    	&lt;f:ajax execute="@this" event="change" listener="#{ProgramaProjetoMBean.carregaLstMesesFim}" render="listMesesFim"/&gt;      
  									&lt;f:selectItems  value="#{ProgramaProjetoMBean.mesesInicio}" /&gt;  
							   &lt;/h:selectOneMenu&gt;  a 
							   &lt;h:selectOneMenu id="listMesesFim" value="#{ProgramaProjetoMBean.mesFim}"&gt;  
  									&lt;f:selectItems  value="#{ProgramaProjetoMBean.mesesFim}" /&gt;  
							   &lt;/h:selectOneMenu&gt;

bean:

@ManagedBean(name="ProgramaProjetoMBean")
@RequestScoped
public class ProgramaProjetoMBean{

private List&lt;SelectItem&gt; mesesInicio;
private List&lt;SelectItem&gt; mesesFim;
private Integer mesInicio;
private Integer mesFim;

//Getters e Setters


	public void carregaLstMesesFim(AjaxBehaviorEvent event) {
		for (SelectItem item:mesesInicio) {
			if ((Integer)item.getValue() &gt;  mesInicio) {
				mesesFim.add(item);
			}
		}
	}


}

Porem ele não esta achando o carregaLstMesesFim, diz que não existe…

javax.el.MethodNotFoundException: /view/planoTrabalho/programaProjeto/formProgramaProjeto.xhtml @46,113 listener="#{ProgramaProjetoMBean.carregaLstMesesFim}": Method not found: [email removido](javax.faces.event.AjaxBehaviorEvent)
	at com.sun.faces.facelets.el.TagMethodExpression.invoke(TagMethodExpression.java:109)
	at com.sun.faces.facelets.tag.jsf.core.AjaxBehaviorListenerImpl.processAjaxBehavior(AjaxHandler.java:450)
	at javax.faces.event.AjaxBehaviorEvent.processListener(AjaxBehaviorEvent.java:113)
	at javax.faces.component.behavior.BehaviorBase.broadcast(BehaviorBase.java:102)
	at javax.faces.component.UIComponentBase.broadcast(UIComponentBase.java:760)
	at javax.faces.component.UIViewRoot.broadcastEvents(UIViewRoot.java:794)
	at javax.faces.component.UIViewRoot.processApplication(UIViewRoot.java:1259)
	at com.sun.faces.lifecycle.InvokeApplicationPhase.execute(InvokeApplicationPhase.java:81)
	at com.sun.faces.lifecycle.Phase.doPhase(Phase.java:101)

Alguém sabe o pq?

4 Respostas

G

Oi luistiagos, bom dia.

Na pagina xhtml você deve começar o nome do ManagedBean com letra minuscula, não seria esse o problema? :smiley:

[]'s

G

Desculpe, você colocou o name no MB… =/

E

o import do AjaxBehaviorEvent está correto?

confere…

A

Remove o parâmetro (AjaxBehaviorEvent event) do método carregaLstMesesFim:

public void carregaLstMesesFim()
Criado 26 de dezembro de 2011
Ultima resposta 26 de dez. de 2011
Respostas 4
Participantes 4