Erro ao tentar preencher datatable

1 resposta
D

Estou desenvolvento um sistema com JSF 2.0, hibernate e Annotations.

Estou tentando preencher um datatable, mais está acontecendo o seguinte erro:

10/08/2011 19:19:56 com.sun.faces.application.view.FaceletViewHandlingStrategy handleRenderException
SEVERE: Error Rendering View[/curso/index.xhtml]
javax.el.PropertyNotFoundException: /curso/index.xhtml @54,94 value="#{cursoController.listarCursos}": Property 'listarCursos' not found on type br.com.sistema.controller.CursoController
	at com.sun.faces.facelets.el.TagValueExpression.getValue(TagValueExpression.java:111)
Depois da FaseRENDER_RESPONSE 6
	at javax.faces.component.ComponentStateHelper.eval(ComponentStateHelper.java:193)
	at javax.faces.component.ComponentStateHelper.eval(ComponentStateHelper.java:181)
	at javax.faces.component.UIData.getValue(UIData.java:557)
	at javax.faces.component.UIData.getDataModel(UIData.java:1297)
	at javax.faces.component.UIData.setRowIndex(UIData.java:450)
	at com.sun.faces.renderkit.html_basic.TableRenderer.encodeBegin(TableRenderer.java:81)
	at javax.faces.component.UIComponentBase.encodeBegin(UIComponentBase.java:828)
	at javax.faces.component.UIData.encodeBegin(UIData.java:940)
	at org.primefaces.renderkit.CoreRenderer.renderChild(CoreRenderer.java:52)
	at org.primefaces.renderkit.CoreRenderer.renderChildren(CoreRenderer.java:43)
	at org.primefaces.component.panel.PanelRenderer.encodeContent(PanelRenderer.java:229)
	at org.primefaces.component.panel.PanelRenderer.encodeMarkup(PanelRenderer.java:152)
	at org.primefaces.component.panel.PanelRenderer.encodeEnd(PanelRenderer.java:75)
	at javax.faces.component.UIComponentBase.encodeEnd(UIComponentBase.java:883)
	at javax.faces.component.UIComponent.encodeAll(UIComponent.java:1659)
	at javax.faces.render.Renderer.encodeChildren(Renderer.java:168)
	at javax.faces.component.UIComponentBase.encodeChildren(UIComponentBase.java:853)
	at javax.faces.component.UIComponent.encodeAll(UIComponent.java:1652)
	at javax.faces.component.UIComponent.encodeAll(UIComponent.java:1655)
	at javax.faces.component.UIComponent.encodeAll(UIComponent.java:1655)
	at com.sun.faces.application.view.FaceletViewHandlingStrategy.renderView(FaceletViewHandlingStrategy.java:399)
	at com.sun.faces.application.view.MultiViewHandler.renderView(MultiViewHandler.java:131)
	at com.sun.faces.lifecycle.RenderResponsePhase.execute(RenderResponsePhase.java:121)
	at com.sun.faces.lifecycle.Phase.doPhase(Phase.java:101)
	at com.sun.faces.lifecycle.LifecycleImpl.render(LifecycleImpl.java:139)
	at javax.faces.webapp.FacesServlet.service(FacesServlet.java:313)
	at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:290)
	at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:206)
	at org.netbeans.modules.web.monitor.server.MonitorFilter.doFilter(MonitorFilter.java:393)
	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:127)
	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:298)
	at org.apache.coyote.http11.Http11AprProcessor.process(Http11AprProcessor.java:859)
	at org.apache.coyote.http11.Http11AprProtocol$Http11ConnectionHandler.process(Http11AprProtocol.java:579)
	at org.apache.tomcat.util.net.AprEndpoint$Worker.run(AprEndpoint.java:1555)
	at java.lang.Thread.run(Thread.java:619)
10/08/2011 19:19:56 com.sun.faces.renderkit.RenderKitUtils renderHtmlErrorPage
WARNING: JSF1087: Não foi possível gerar a página de erro de Facelets porque a resposta  foi enviada.
10/08/2011 19:19:56 com.sun.faces.renderkit.RenderKitUtils renderHtmlErrorPage
SEVERE: javax.faces.FacesException: /curso/index.xhtml @54,94 value="#{cursoController.listarCursos}": Property 'listarCursos' not found on type br.com.sistema.controller.CursoController
javax.faces.FacesException: /curso/index.xhtml @54,94 value="#{cursoController.listarCursos}": Property 'listarCursos' not found on type br.com.sistema.controller.CursoController
	at com.sun.faces.context.ExceptionHandlerImpl.handle(ExceptionHandlerImpl.java:140)

Controller:

/*
Nome: Dionatan Hovoruski
Data: 31/07/2011
Descrição:
 */
package br.com.sistema.controller;

import br.com.sistema.model.bean.Curso;
import br.com.sistema.model.dao.HibernateDAO;
import br.com.sistema.model.dao.InterfaceDAO;
import br.com.sistema.util.FacesContextUtil;
import java.io.Serializable;
import java.util.List;
import javax.faces.application.FacesMessage;
import javax.faces.bean.ManagedBean;
import javax.faces.bean.SessionScoped;
import javax.faces.context.FacesContext;

@ManagedBean
@SessionScoped
public class CursoController implements Serializable {

    private Curso curso;
    
    public CursoController() {
        curso = new Curso();
    }
    
    public List<Curso> listarCursos() {

        HibernateDAO<Curso> cursoDAO = new HibernateDAO<Curso>(Curso.class, FacesContextUtil.getRequestSession());       
        return cursoDAO.getBeans();
    }
    
    public Curso getCurso() {
        return curso;
    }

    public void setCurso(Curso curso) {
        this.curso = curso;
    }

    public void salvar() {
        try {

            InterfaceDAO<Curso> cursoDAO = new HibernateDAO<Curso>(Curso.class, FacesContextUtil.getRequestSession());

            cursoDAO.salvar(curso);
            FacesContext.getCurrentInstance().addMessage(null, new FacesMessage(FacesMessage.SEVERITY_INFO, null, "Curso: " + curso.getDescricao() + " inserido com sucesso!"));

        } catch (Exception e) {
            FacesContext.getCurrentInstance().addMessage(null, new FacesMessage(FacesMessage.SEVERITY_ERROR, null, "Erro! Não foi possível inserir"));
            e.getMessage();
        }

    }
}

Página XHTML:

<?xml version='1.0' encoding='UTF-8' ?>
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml"
      xmlns:h="http://java.sun.com/jsf/html"
      xmlns:p="http://primefaces.prime.com.tr/ui" 
      xmlns:f="http://java.sun.com/jsf/core"
      xmlns:ui="http://java.sun.com/jsf/facelets">
    <h:head>
        <meta http-equiv="Content-Type" content="text/html; charset=utf-8" /> 
        <link type="text/css" rel="stylesheet" href="../css/menu.css" />
        <link rel="stylesheet" href="../css/principal.css" type="text/css"/>
        <title>Cadastro de Cursos - sistema</title>
    </h:head>

    <h:body>
        <div id="tudo">
            <div id="menu_superior">
                <div id="menu_usuario">New Winters School - Imbituva. Seja bem vindo(a) <a>Dionatan Hovoruski</a>.</div>
                <div id="menu_sair"><a href="#">Sair</a></div>
                <div></div>
            </div>
            <div id="topo">
                <div id="logo_sistema"><p href="index.jsp" alt="sistema"></p></div>
                <div id="logo_empresa"></div>
            </div>        
            <ui:include src="../menu.xhtml"/>
            <div id="geral">
                <div id="conteudo">
                    <div id="menu_busca">
                        <p>Cursos</p>
                        <br/>
                        <br/>
                        <h:form>
                            <h:panelGroup>
                                <h:outputText value="Código:" style="margin: 10px 0px 0px 15px"/>
                                <p:inputText title="Código" label="Código" style="margin: 10px 0px 0px 5px; width: 120px" converter="conversor"/>                                        

                                <h:outputText value="Curso:" style="margin: 10px 0px 0px 5px"/> 
                                <p:inputText title="Curso" label="Curso" style="margin: 10px 0px 0px 5px; width: 440px" converter="conversor"/>

                                <p:commandButton style="margin-left: 10px;" value="Buscar" image="ui-icon ui-icon-search" process="@all" update="msgs"/>
                            </h:panelGroup>
                        </h:form>
                    </div>

                    <h:form style="margin-top: 5px;">
                        <h:panelGroup>
                            <p:commandButton value="Inserir" image="ui-icon ui-icon-plus" action="#{cursoController.listarCursos}" update="msgs"/>
                            <p:commandButton value="Excluir" style="margin-left: 10px;" image="ui-icon ui-icon-minus"/>
                            <p:commandButton value="Alterar" style="margin-left: 10px;" image="ui-icon ui-icon-pencil" update="msgs"/>
                        </h:panelGroup>

                        <p:panel header="Cursos" style="height: 100%; margin-top: 5px;">
                            <h:dataTable value="#{cursoController.listarCursos}" var="curso">
<!--                                <p:tooltip global="true"/>
                                <p:column selectionMode="single" />  -->
                                <h:column>  
                                    <f:facet name="header">  
                                        Código  
                                    </f:facet>  
                                    <h:outputText value="#{curso.id}"/>  
                                </h:column>  

                                <h:column>  
                                    <f:facet name="header">  
                                        Curso
                                    </f:facet>  
                                    <h:outputText value="#{curso.descricao}"/>  
                                </h:column>  
                            </h:dataTable>  
                        </p:panel>
                    </h:form>
                </div>
                <div id="clear"></div>
            </div>        
            <div id="rodape">
                <p>sistema 2011 - Todos os direitos reservados.</p>
            </div>
        </div>
    </h:body>
</html>

1 Resposta

D

Ninguém??? :XD:

Criado 10 de agosto de 2011
Ultima resposta 11 de ago. de 2011
Respostas 1
Participantes 1