selectOneMenu: erro ao selecionar um item

1 resposta
F

Olá pessoal! Boa tarde a todos!

Estou querendo fazer o seguinte: ao selecionar uma opção em um selectOneMenu seja executado um método. Vi alguns exemplos; o melhor deles foi esse:

[color=blue]<h:selectOneMenu id=“placa” value="#{gastosVO.placa}" immediate=“true” onchange=“submit();” valueChangeListener="#{seuBean.metodo}">
<f:selectItems value="#{compraPers.comboPlaca}"/>
</h:selectOneMenu>

public void metodo(ValueChangeEvent event)

{

String valor = (String) event.getNewValue();

//restante da sua  logica

}[/color]

No entanto, no meu código tá dando erro. O que será? (O erro ocorre quando eu escolho uma opção)

JSF:
<h:selectOneMenu id=“gestor” styleClass=“campo"
value=”#{programaView.programa.cogestor}" immediate=“true"
onchange=“submit();” valueChangeListener=”#{programaView.listaPorGestor2}">
<f:selectItems value="#{programaView.listaGestor}"/>
</h:selectOneMenu>

BEAN:

public void getListaPorGestor2(ValueChangeEvent event)

{

String valor = (String) event.getNewValue();

System.out.println("Valor: " + valor);

}
public List getListaGestor() throws SiconDAOException {

List lista = new ArrayList();

lista.add(new SelectItem("", “(Escolha um Gestor)”));
InterfaceGestorDAO idao = new GestorDAO();
    List<Gestor> gestor = idao.listaPorNome("");
    for (Gestor g : gestor) {  
        lista.add(new SelectItem(g.getCogestor(), g.getNogestor()));  
    }  
                    
    return lista;  
}

ERRO:
HTTP Status 500 -

type Exception report

message

description The server encountered an internal error () that prevented it from fulfilling this request.

exception

javax.servlet.ServletException: listaPorGestor2: sicon.controller.ProgramaManager.listaPorGestor2(javax.faces.event.ValueChangeEvent)

javax.faces.webapp.FacesServlet.service(FacesServlet.java:209)

org.ajax4jsf.framework.ajax.xmlfilter.BaseXMLFilter.doXmlFilter(BaseXMLFilter.java:96)

org.ajax4jsf.framework.ajax.xmlfilter.BaseFilter.doFilter(BaseFilter.java:220)

org.netbeans.modules.web.monitor.server.MonitorFilter.doFilter(MonitorFilter.java:368)

root cause

javax.faces.el.MethodNotFoundException: listaPorGestor2: sicon.controller.ProgramaManager.listaPorGestor2(javax.faces.event.ValueChangeEvent)

com.sun.faces.el.MethodBindingImpl.method(MethodBindingImpl.java:206)

com.sun.faces.el.MethodBindingImpl.invoke(MethodBindingImpl.java:124)

javax.faces.component.UIInput.broadcast(UIInput.java:492)

org.ajax4jsf.framework.ajax.AjaxViewRoot.processEvents(AjaxViewRoot.java:180)

org.ajax4jsf.framework.ajax.AjaxViewRoot.broadcastEvents(AjaxViewRoot.java:156)

org.ajax4jsf.framework.ajax.JsfOneOneInvoker.invokeOnRegionOrRoot(JsfOneOneInvoker.java:62)

org.ajax4jsf.framework.ajax.AjaxContext.invokeOnRegionOrRoot(AjaxContext.java:176)

org.ajax4jsf.framework.ajax.AjaxViewRoot.processDecodes(AjaxViewRoot.java:267)

com.sun.faces.lifecycle.ApplyRequestValuesPhase.execute(ApplyRequestValuesPhase.java:79)

com.sun.faces.lifecycle.LifecycleImpl.phase(LifecycleImpl.java:200)

com.sun.faces.lifecycle.LifecycleImpl.execute(LifecycleImpl.java:90)

javax.faces.webapp.FacesServlet.service(FacesServlet.java:197)

org.ajax4jsf.framework.ajax.xmlfilter.BaseXMLFilter.doXmlFilter(BaseXMLFilter.java:96)

org.ajax4jsf.framework.ajax.xmlfilter.BaseFilter.doFilter(BaseFilter.java:220)

org.netbeans.modules.web.monitor.server.MonitorFilter.doFilter(MonitorFilter.java:368)

note The full stack trace of the root cause is available in the Apache Tomcat/5.5.17 logs.
Apache Tomcat/5.5.17

1 Resposta

F

Olá pessoal!

Problema resolvido. Vejam como estava chamando o método:

JSF:
<h:selectOneMenu id=“gestor” styleClass=“campo"
value=”#{programaView.programa.cogestor}" immediate=“true"
onchange=“submit();” valueChangeListener=”[color=red]#{programaView.listaPorGestor2}[/color]">
<f:selectItems value="#{programaView.listaGestor}"/>
</h:selectOneMenu>

Na verdade, deveria ser assim:
<h:selectOneMenu id=“gestor” styleClass=“campo"
value=”#{programaView.programa.cogestor}" immediate=“true"
onchange=“submit();” valueChangeListener=”[color=blue]#{programaView.getListaPorGestor2}[/color]">
<f:selectItems value="#{programaView.listaGestor}"/>
</h:selectOneMenu>

Criado 6 de maio de 2008
Ultima resposta 6 de mai. de 2008
Respostas 1
Participantes 1