Como chamar metodo static de pagina JSP com JSTL?

Olá pessoal do GUJ,

Estou com o seguinte problema.

Tenho uma classe Bean chamada Entidade;
Também tenho uma class EntidadeDAO com o método static getAll() q retorna List;

Então, no arquivo cliente.jsp estou tentando listar todos os clientes. Obviamente tento chamar ClienteDAO.getAll(). Veja:

<jsp:useBean id="dao" class="com.acme.dao.ClienteDAO"/>

            <table border="1">

                <c:forEach items="${dao.all}" var="c">
                    <tr>
                        <td>
                            <c:out value="${c.nome}"/>
                        </td>
                    </tr>
                </c:forEach>
            </table>

Está retornando o seguinte erro no browser:

HTTP Status 500 -

type Exception report

message

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

exception

org.apache.jasper.JasperException: org.apache.jasper.el.JspPropertyNotFoundException: /cliente.jsp(36,16) ‘${dao.all}’ Property ‘all’ not found on type com.acme.dao.ClienteDAO
org.apache.jasper.servlet.JspServletWrapper.handleJspException(JspServletWrapper.java:534)
org.apache.jasper.servlet.JspServletWrapper.service(JspServletWrapper.java:457)
org.apache.jasper.servlet.JspServlet.serviceJspFile(JspServlet.java:391)
org.apache.jasper.servlet.JspServlet.service(JspServlet.java:334)
javax.servlet.http.HttpServlet.service(HttpServlet.java:722)
org.netbeans.modules.web.monitor.server.MonitorFilter.doFilter(MonitorFilter.java:393)

root cause
org.apache.jasper.el.JspPropertyNotFoundException: /cliente.jsp(36,16) ‘${dao.all}’ Property ‘all’ not found on type com.acme.dao.ClienteDAO
org.apache.jasper.el.JspValueExpression.getValue(JspValueExpression.java:109)
org.apache.jsp.cliente_jsp._jspx_meth_c_005fforEach_005f0(cliente_jsp.java:132)
org.apache.jsp.cliente_jsp._jspService(cliente_jsp.java:103)
org.apache.jasper.runtime.HttpJspBase.service(HttpJspBase.java:70)
javax.servlet.http.HttpServlet.service(HttpServlet.java:722)
org.apache.jasper.servlet.JspServletWrapper.service(JspServletWrapper.java:419)
org.apache.jasper.servlet.JspServlet.serviceJspFile(JspServlet.java:391)
org.apache.jasper.servlet.JspServlet.service(JspServlet.java:334)
javax.servlet.http.HttpServlet.service(HttpServlet.java:722)
org.netbeans.modules.web.monitor.server.MonitorFilter.doFilter(MonitorFilter.java:393)
note The full stack trace of the root cause is available in the Apache Tomcat/7.0.11 logs.

Apache Tomcat/7.0.11

Alguém pode dar uma luz?

Grato

mostre como esta a o teu ClienteDAO

use a o [code] para mostrar o codigo…

Olá amigo, é mais pratico vc criar uma tag customizada que recebe seu bean e dentro dela invoca o método estático retornando a lista que vc quer…
blz
fallow

Caio, está aí meu ClienteDAO.
O método que quero usar no arquivo jsp é o getAll(). Começa na linha 44

[code]package com.acme.dao;

import com.acme.entidades.Cliente;
import java.sql.Connection;
import java.sql.PreparedStatement;
import java.sql.ResultSet;
import java.sql.SQLException;
import java.util.ArrayList;
import java.util.List;

/**
*

  • @author eduardo
    */
    public class ClienteDAO {

    private static Connection conn = null;

    // INCLUIR
    public static void incluir(Cliente cliente) {

     // codigo...
    

    }

    // ATUALIZAR
    public static void atualizar(Cliente cliente) {

     // codigo...
    

    }

    // PESQUISAR POR ID
    public static Cliente getById(Integer id) {

    // codigo...
    

    }

    // PESQUISAR POR NOME
    public static List getByName(String nome) {
    // codigo…
    }

    // PESQUISAR
    public static List getAll() {
    conn = ConnectionFactory.getConnection();
    String sql = “SELECT * FROM cliente”;

     Cliente c = null;
     List<Cliente> clienteLista = new ArrayList<Cliente>();
    
     try {
    
         PreparedStatement stmt = conn.prepareStatement(sql);
         ResultSet rs = stmt.executeQuery();
    
         while (rs.next()) {
             c = new Cliente(rs.getInt("idcliente"),
                             rs.getString("nome"),
                             rs.getString("cpf"),
                             rs.getString("logradouro"),
                             rs.getString("cidade"),
                             rs.getString("uf"),
                             rs.getInt("inativo"),
                             rs.getInt("especial"));
    
             clienteLista.add(c);
         }
    
         stmt.close();
    
     } catch (SQLException ex) {
         System.out.println("ERRO ao recuperar lista de clientes" + ex.getMessage());
     }
     return clienteLista;
    

    }
    }[/code]