Ir para conteúdo

POWERED BY:

Arquivado

Este tópico foi arquivado e está fechado para novas respostas.

Reiny

requestScope vazio ou nulo !!!

Recommended Posts

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!

Compartilhar este post


Link para o post
Compartilhar em outros sites

Talvez o problema seja com o escopo do seu request. Talvez você tenha que usar escopo session.

 

O escopo de aplicativo dura até o servidor parar o aplicativo. Os valores que você armazena em um Bean do aplicativo estão disponíveis em cada sessão e em cada solicitação que usa o mesmo mapa de aplicativo.

 

O escopo de sessão começa quando o usuário acessa pela primeira vez uma página no aplicativo da Web e termina quando a sessão do usuário expira devido à inatividade, ou quando o aplicativo da Web invalida a sessão, como, por exemplo, chamando session.invalidate().

 

O escopo de solicitação começa quando o usuário envia a página e termina quando a resposta é totalmente processada, qualquer que seja a página.

Compartilhar este post


Link para o post
Compartilhar em outros sites

Obriagdo Vergil pela resposta, 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>	
 ...

Entaão a correção e simples bastou passar cliente_id , para nome !

 

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

Compartilhar este post


Link para o post
Compartilhar em outros sites

×

Informação importante

Ao usar o fórum, você concorda com nossos Termos e condições.