Boa tarde
Mais uma vez venho pedir arrego ao guj.
Dessa vez é com o componente do jsf h:selectOneMenu.
Não estou conseguindo popular uma lista para poder carregar as informações na minha pagina.
Li varios topicos aqui no guj mas não estou conseguindo entender.
quando vou executar está dando estouro de pilha.
vejam o erro:
javax.faces.FacesException: org.apache.jasper.el.JspELException: /gestaoProdutoNovo.jsp(72,48) '#{ProdutoMB.categoria}' Error reading 'categoria' on type ade.mb.produto.ProdutoMB
at javax.faces.component.UISelectItems.getValue(UISelectItems.java:133)
at com.sun.faces.renderkit.RenderKitUtils.getSelectItems(RenderKitUtils.java:323)
at com.sun.faces.renderkit.html_basic.MenuRenderer.getOptionNumber(MenuRenderer.java:675)
at com.sun.faces.renderkit.html_basic.MenuRenderer.renderSelect(MenuRenderer.java:793)
at com.sun.faces.renderkit.html_basic.MenuRenderer.encodeEnd(MenuRenderer.java:335)
at javax.faces.component.UIComponentBase.encodeEnd(UIComponentBase.java:836)
at com.sun.faces.renderkit.html_basic.HtmlBasicRenderer.encodeRecursive(HtmlBasicRenderer.java:279)
at com.sun.faces.renderkit.html_basic.GridRenderer.encodeChildren(GridRenderer.java:242)
at javax.faces.component.UIComponentBase.encodeChildren(UIComponentBase.java:812)
at javax.faces.component.UIComponent.encodeAll(UIComponent.java:886)
at javax.faces.render.Renderer.encodeChildren(Renderer.java:137)
at javax.faces.component.UIComponentBase.encodeChildren(UIComponentBase.java:812)
at javax.faces.component.UIComponent.encodeAll(UIComponent.java:886)
at javax.faces.component.UIComponent.encodeAll(UIComponent.java:892)
at com.sun.faces.application.ViewHandlerImpl.doRenderView(ViewHandlerImpl.java:245)
at com.sun.faces.application.ViewHandlerImpl.renderView(ViewHandlerImpl.java:176)
at com.sun.faces.lifecycle.RenderResponsePhase.execute(RenderResponsePhase.java:106)
at com.sun.faces.lifecycle.LifecycleImpl.phase(LifecycleImpl.java:251)
at com.sun.faces.lifecycle.LifecycleImpl.render(LifecycleImpl.java:144)
at javax.faces.webapp.FacesServlet.service(FacesServlet.java:245)
at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:290)
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:175)
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:844)
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(Thread.java:619)
Caused by: org.apache.jasper.el.JspELException: /gestaoProdutoNovo.jsp(72,48) '#{ProdutoMB.categoria}' Error reading 'categoria' on type ade.mb.produto.ProdutoMB
at org.apache.jasper.el.JspValueExpression.getValue(JspValueExpression.java:107)
at javax.faces.component.UISelectItems.getValue(UISelectItems.java:130)
... 31 more
Caused by: java.lang.StackOverflowError
at ade.mb.produto.ProdutoMB.getCategoria(ProdutoMB.java:84)
at ade.mb.produto.ProdutoMB.getCategoria(ProdutoMB.java:84)
at ade.mb.produto.ProdutoMB.getCategoria(ProdutoMB.java:84)
o metodo DAO que busca as informações está assim:
public List<SelectItem> getAll() throws ClassNotFoundException, SQLException {
List<SelectItem> toReturn = new ArrayList<SelectItem>();
System.out.println("passei por aqui buscando todos as categorias");
ResultSet rs = pegaDeclaracao().executeQuery("select * from tbl_categorias");
while (rs.next()) {
ProdutoCategoria categoria = new ProdutoCategoria();
PopulaAllCategoria(categoria, rs);
}
return toReturn;
}
private void PopulaAllCategoria(ProdutoCategoria categoria, ResultSet rs) throws
SQLException {
categoria.setIdCat(rs.getInt("id_categ"));
categoria.setNomeCat(rs.getString("nome_categ"));
}
e o meu bean está assim:
public List<SelectItem> getCategoria() throws ClassNotFoundException,
SQLException {
if (categorias == null) {
categoriaDao.getAll();
}
return getCategoria();
}