Erro de operator "." em JSP

5 respostas
P

Pessoal estou aprendendo Java para a Web e montei um exemplo básico de cadastro, listagem e exclusão. O cadastro funciona beleza.
Porém a listagem dá o seguinte erro:

javax.servlet.ServletException: Unable to find a value for "clientes" in object of class "modelo.CadastroCliente" using operator "."

Alguém tem alguma dica para me ajudar?

5 Respostas

Luiz_Gustavo

Grande petter… beleza maninho?

tem como você postar o método/classe que está dando esse erro?

[]'s

P

Opa é mesmo.
Aí vai o código do meu JSP:

<%@page contentType="text/html"%>
<%@page pageEncoding="UTF-8"%>

<%@taglib uri="http://java.sun.com/jsp/jstl/core" prefix="c"%> 

<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN"
   "http://www.w3.org/TR/html4/loose.dtd">

<html>
    <head>
        <meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
        <title>Lista de Clientes</title>
                <style type="text/css">
     .text {
            font-family: Arial, Helvetica, sans-serif;
            font-size: 10px;
            font-style: normal;
            font-weight: normal;
            color: black;
     }

     A  {
            TEXT-DECORATION : none;
            color : #000000;
            font-weight: normal;
            font-family: Arial, Helvetica, sans-serif;
            font-size: 10px;
            font-style: normal;
     }
     A:link
      {
            TEXT-DECORATION : none;
            font-size: 10px;
     }
     A:hover
     {
            COLOR : #FF0000;
            TEXT-DECORATION : underline;
            font-size: 10px;s
     }

    </style>
    </head>
    <body>
    <p align="center" class="text">
    <h1>:: Lista de Clientes ::</h1>
    
    <jsp:useBean id="cadastro"
                 scope="application"
                 class="modelo.CadastroCliente" />
    
    <c:set var="clientes" value="${cadastro.clientes}" />
    
<table>
    <c:forEach var='clientes' items='${clientes}' varStatus='s'>
        <c:choose>
            <c:when test='${s.count % 2 == 0}'>
                <tr bgcolor='#aaaaaa'>
            </c:when>
            <c:otherwise>
                <tr bgcolor='#dddddd'>
            </c:otherwise>
        </c:choose>
        <td> <a href="deletar.jsp?nome=${clientes.nome}&cpf=${clientes.cpf}">${clientes.nome}</a></td>
        <td> <a href="deletar.jsp?nome=${clientes.nome}&cpf=${clientes.cpf}">${clientes.cpf}</a></td>
    </c:forEach>
</table>
    
    [ <a href="index.jsp">Voltar</a> ]
    </p>
    </body>
</html>

Aqui vai o código do meu método no servlet para fazer a listagem:

//Rotina para listar clientes do banco
    public static Collection<Cliente> getClientes() throws SQLException {
        PreparedStatement ps = c.prepareStatement("SELECT * FROM cliente ORDER BY nome DESC");
        
        ResultSet rs = ps.executeQuery();
        
        ArrayList<Cliente> clientes = new ArrayList<Cliente>();
        
        while(rs.next()) {
            Cliente cliente = new Cliente();
            cliente.setNome(rs.getString("nome"));
            cliente.setCpf(rs.getString("cpf"));
            
            clientes.add(cliente);
        }
        ps.close();
        return clientes;
    }
vivi_grieco

A tua classe “CadastroCliente” tá dentro do pacote “modelo”? Tens um atributo chamado “clientes” na tua classe?

P

Sim está dentro de modelo.

Também tem.

kissdemon
<jsp:useBean id="cadastro"
                  scope="application"
                  class="modelo.CadastroCliente" />
     
     <c:set var="clientes" value="${cadastro.clientes}" />
     
     <c:forEach var='clientes' items='${clientes}' varStatus='s'>

Tente tirar o <c:set var=“clientes” value="${cadastro.clientes}" /> e no forEach use diretamente assim:

<c:forEach var='clientes' items='${cadastro.clientes}' varStatus='s'>

É possível que funcione!

[]´s

Criado 21 de setembro de 2006
Ultima resposta 22 de set. de 2006
Respostas 5
Participantes 4