RequestScope não executa!

4 respostas
R

Olá amigos , bom dia !

Estou construindo um sistema mvc simples descrito abaixo !

1 - Tenho uma classe DAO chamada 'clienteDAO' que retorna uma lista de objetos 'cliente', abaixo segue o metodo da que retorna a lista !

...

    public List<Cliente> lista() throws SQLException {

        sql = "SELECT * FROM PROTEGE_CLIENTE";

        Connection connection = ConnectionFactory.getConnection();
        PreparedStatement pstmt = connection.prepareStatement(sql);
        ResultSet rs = pstmt.executeQuery();

        List<Cliente> list = new ArrayList<Cliente>();

        while (rs.next()) {
            Cliente cliente = new Cliente();
            cliente.setId(rs.getString("CLIENTE_ID"));
            cliente.setNome(rs.getString("CLIENTE_NOME"));
            list.add(cliente);
        }

        rs.close();
        pstmt.close();
        connection.close();
        return list;
    }

    ...

2 - Aqui esta o codigo do servlet que chama a pagina jsp !

...
       List<Cliente> lista = clientedao.lista();
       request.setAttribute("lista", lista);
       dispacha = request.getRequestDispatcher("/modulos/cliente/index.jsp");
    ...

3 - Aqui segue a pagina com problema, essa pagina fica em branco (nunhum erro e mostrado), não imprime nen mesmo o HTML !

<%@page contentType='text/html' pageEncoding='utf-8'%>

<%@taglib prefix="c" uri="http://java.sun.com/jsp/jstl/core" %>
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01//EN" "http://www.w3.org/TR/html4/strict.dtd">

<html>
    <head>
        <link rel="stylesheet" type="text/css" href="../../style.css" />
    </head>
    <body>
        <table>
            <tr>
                <c:forEach var="clientes" items="${ requestScope.lista }">
                    <td>${clientes.cliente_nome}/></td>
                </c:forEach>
            </tr>
        </table>
    </body>
</html>

OBS : Libs do classpath testadas , estão todas lá jstl - 1.1, mysql-connector-5.1.6.jar!

4 Respostas

P

parece estar certo, verifique os espaços em branco na EL ${ requestScope.lista } (${requestScope.lista})

drodrigues03

Faça um teste instanciando o objeto com a tag "useBean" e veja se imprime algum resultado.

<%@page contentType='text/html' pageEncoding='utf-8'%>   
<%@taglib prefix="c" uri="http://java.sun.com/jsp/jstl/core" %>  
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01//EN" "http://www.w3.org/TR/html4/strict.dtd">   
<html>  
 <head>  
      <link rel="stylesheet" type="text/css" href="../../style.css" />  
 </head>  
<body>  
       <table>  
          <tr>  
          		
          		<jsp:useBean id="dao" class="com.seupackpage.clienteDAO"/>

                <c:forEach var="clientes" items="${dao.lista}">  
                     <td>${clientes.cliente_nome}/></td>  
                 </c:forEach>  
             </tr>  
         </table>  
     </body>  
</html>

abs

mduques

O que vc faz ocm o dispacha???
Aplica o forward???

tenta assim:

request.getRequestDispatcher("/modulos/cliente/index.jsp").forward(request, response);
R

Obriagdo a todos pelas respostas mais já descobri a falha no codigo !

E o seguinte, no trecho abaixo eu estava tentando acessar o valor ‘nome’ do cliente pelo nome da coluna no banco de dados,
porém no banco de dados, todas as colunas tem o nome da tabela como prefixo, a coluna no banco chama-se ‘cliente_nome’ , e a variavel na entidade referente a essa tabela , ou sejá a entity cliente e nome e naum cliente_nome;

...
<c:forEach var="clientes" items="${dao.lista}">    
   <td>${clientes.cliente_nome}/></td>    
</c:forEach>  
...

Enatum a correção e simples bastou passar cliente_id , para cliente !
...
<c:forEach var="clientes" items="${dao.lista}">    
   <td>${clientes.nome}/></td>    
</c:forEach>  
...
Criado 9 de dezembro de 2008
Ultima resposta 9 de dez. de 2008
Respostas 4
Participantes 4