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