Bem, pesquisei antes nos tópicos existentes e nào consegui resolver o problema, por isso criei um novo tópico.
Estou fazendo uma consulta de estados e cidades do sistema. ao selecionar o estado, o sistema deverá informar as cidades cadastradas referentes aquele estado.
<h:outputLabel for="estado" value="#{msgs['cadastro.estado.titulo']}:" styleClass="labels"/>
<h:selectOneMenu id="estado" value="#{estadoBean.estado.id}" rendered="true">
<f:selectItems value="#{estadoBean.listaEstados}" />
<a4j:support event="onchange" action="#{estadoBean.actionCarregarCidades}" reRender="estado,cidades" ></a4j:support>
</h:selectOneMenu>
<h:selectOneMenu id="cidades" value="1" rendered="true">
<f:selectItems value="#{estadoBean.cidadesByEstado}" />
</h:selectOneMenu>
Negócio eh que ele já vai direto trazendo as cidades do estado já quando a pagina é carregada, sem dar a chance de uma primeira escolha do estado. Em EstadoBean tenho um objeto do tipo Estado: Estado estado = new Estado();
No método getCidadesByEstado() porém, ele não consegue pegar o id do estado selecionado, causando o seguinte erro:
javax.faces.FacesException: javax.el.ELException: /protegido/consultas/cidade.jspx @24,64 value="#{estadoBean.cidadesByEstado}": Error reading 'cidadesByEstado' on type br.com.sgc.beans.EstadoBean
at javax.faces.component.UISelectItems.getValue(UISelectItems.java:144)
at com.sun.faces.renderkit.RenderKitUtils.getSelectItems(RenderKitUtils.java:289)
at com.sun.faces.renderkit.html_basic.MenuRenderer.renderSelect(MenuRenderer.java:814)
at com.sun.faces.renderkit.html_basic.MenuRenderer.encodeEnd(MenuRenderer.java:280)
at javax.faces.component.UIComponentBase.encodeEnd(UIComponentBase.java:861)
at javax.faces.component.UIComponent.encodeAll(UIComponent.java:937)
at javax.faces.render.Renderer.encodeChildren(Renderer.java:148)
at javax.faces.component.UIComponentBase.encodeChildren(UIComponentBase.java:837)
at javax.faces.component.UIComponent.encodeAll(UIComponent.java:930)
at javax.faces.component.UIComponent.encodeAll(UIComponent.java:933)
at com.sun.facelets.FaceletViewHandler.renderView(FaceletViewHandler.java:592)
at org.ajax4jsf.application.ViewHandlerWrapper.renderView(ViewHandlerWrapper.java:108)
at org.ajax4jsf.application.AjaxViewHandler.renderView(AjaxViewHandler.java:196)
at com.sun.faces.lifecycle.RenderResponsePhase.execute(RenderResponsePhase.java:110)
at com.sun.faces.lifecycle.Phase.doPhase(Phase.java:100)
at com.sun.faces.lifecycle.LifecycleImpl.render(LifecycleImpl.java:139)
at javax.faces.webapp.FacesServlet.service(FacesServlet.java:266)
at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:290)
at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:206)
at org.springframework.orm.hibernate3.support.OpenSessionInViewFilter.doFilterInternal(OpenSessionInViewFilter.java:198)
at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:76)
at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:235)
at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:206)
at org.ajax4jsf.webapp.BaseXMLFilter.doXmlFilter(BaseXMLFilter.java:177)
at org.ajax4jsf.webapp.BaseFilter.handleRequest(BaseFilter.java:267)
at org.ajax4jsf.webapp.BaseFilter.processUploadsAndHandleRequest(BaseFilter.java:380)
at org.ajax4jsf.webapp.BaseFilter.doFilter(BaseFilter.java:507)
at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:235)
at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:206)
at org.apache.catalina.core.StandardWrapperValve.invoke(StandardWrapperValve.java:233)
at org.apache.catalina.core.StandardContextValve.invoke(StandardContextValve.java:191)
at org.apache.catalina.core.StandardHostValve.invoke(StandardHostValve.java:128)
at org.apache.catalina.valves.ErrorReportValve.invoke(ErrorReportValve.java:102)
at org.apache.catalina.core.StandardEngineValve.invoke(StandardEngineValve.java:109)
at org.apache.catalina.connector.CoyoteAdapter.service(CoyoteAdapter.java:286)
at org.apache.coyote.http11.Http11Processor.process(Http11Processor.java:845)
at org.apache.coyote.http11.Http11Protocol$Http11ConnectionHandler.process(Http11Protocol.java:583)
at org.apache.tomcat.util.net.JIoEndpoint$Worker.run(JIoEndpoint.java:447)
at java.lang.Thread.run(Unknown Source)
Caused by: javax.el.ELException: /protegido/consultas/cidade.jspx @24,64 value="#{estadoBean.cidadesByEstado}": Error reading 'cidadesByEstado' on type br.com.sgc.beans.EstadoBean
at com.sun.facelets.el.TagValueExpression.getValue(TagValueExpression.java:76)
at javax.faces.component.UISelectItems.getValue(UISelectItems.java:141)
... 38 more
Caused by: java.lang.[b]NullPointerException[/b]
at br.com.sgc.beans.EstadoBean.getCidadesByEstado(EstadoBean.java:54)
at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
at sun.reflect.NativeMethodAccessorImpl.invoke(Unknown Source)
at sun.reflect.DelegatingMethodAccessorImpl.invoke(Unknown Source)
at java.lang.reflect.Method.invoke(Unknown Source)
at javax.el.BeanELResolver.getValue(BeanELResolver.java:62)
at javax.el.CompositeELResolver.getValue(CompositeELResolver.java:53)
at com.sun.faces.el.FacesCompositeELResolver.getValue(FacesCompositeELResolver.java:72)
at org.apache.el.parser.AstValue.getValue(AstValue.java:118)
at org.apache.el.ValueExpressionImpl.getValue(ValueExpressionImpl.java:186)
at com.sun.facelets.el.TagValueExpression.getValue(TagValueExpression.java:71)
... 39 more
ele dá esse erro pois no objeto estado em EstadoBean tem id nulo. Porém eu faço:
<h:selectOneMenu id="estado" value="#{estadoBean.estado.id}" rendered="true">
<f:selectItems value="#{estadoBean.listaEstados}" />
ou seja, não era pra estar null. sugestões?