coca1na
Novembro 23, 2010, 4:02pm
#1
Pessoal, seguinte… tenho uma classe DAO com o seguinte método:
[code]
public List getLista() {
try {
List cadastros = new ArrayList();
PreparedStatement stmt = this.connection.prepareStatement(“select * from cadastro”);
ResultSet rs = stmt.executeQuery();
while (rs.next()){
Cadastro cadastro = new Cadastro();
cadastro.setNome(rs.getString("nome"));
cadastro.setIdade(rs.getInt("idade"));
cadastro.setTelefone(rs.getString("telefone"));
cadastro.setEmail(rs.getString("email"));
cadastros.add(cadastro);
}
rs.close();
stmt.close();
return cadastros;
} catch (SQLException e) {
throw new RuntimeException(e);
}
}[/code]
Tenho uma servlet (ConsultarCadastroServlet.java) que preciso que chame o método listado acima, recupere a lista contendo os resultados e envie para uma jsp (consultarcadastro.jsp).
Só tenho isso na servlet até agora:
protected void processRequest(HttpServletRequest request, HttpServletResponse response)
throws ServletException, IOException {
response.setContentType("text/html;charset=UTF-8");
PrintWriter out = response.getWriter();
try {
CadastroDAO dao = new CadastroDAO();
List<Cadastro> cadastros = dao.getLista();
} finally {
out.close();
}
}
Como faço pra essa servlet recuperar os resultados e enviar para a jsp ?
Obrigado!
Sessão…
HttpSession sessao = request.getSession();
sessao.setAttribute("cadastros", cadastros);
response.sendRedirect("para_a_sua_jsp.jsp");
e na jsp
List<Cadastro> cadastros = session.getAttribute("cadastros");
coca1na
Novembro 23, 2010, 4:17pm
#3
[quote=drsmachado]Sessão…
HttpSession sessao = request.getSession();
sessao.setAttribute("cadastros", cadastros);
response.sendRedirect("para_a_sua_jsp.jsp");
e na jsp
List<Cadastro> cadastros = session.getAttribute("cadastros");
[/quote]
Colocando List<Cadastro> cadastros = session.getAttribute("cadastros");
eu não estaria fugindo do padrão MVC ? Já que estaria colocando código Java dentro de JSP ?
De qualquer forma, fiz o que você disse e deu erro.
Servlet:
protected void processRequest(HttpServletRequest request, HttpServletResponse response)
throws ServletException, IOException {
response.setContentType("text/html;charset=UTF-8");
PrintWriter out = response.getWriter();
try {
CadastroDAO dao = new CadastroDAO();
List<Cadastro> cadastros = dao.getLista();
HttpSession sessao = request.getSession();
sessao.setAttribute("cadastros", cadastros);
response.sendRedirect("consultarcadastro.jsp");
} finally {
out.close();
}
}
JSP:
<%@page import="jdbc.modelo.Cadastro"%>
<%@page import="java.util.List"%>
<%@page contentType="text/html" pageEncoding="UTF-8"%>
<!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>Consulta de Cadastros</title>
</head>
<body>
<% List<Cadastro> cadastros = session.getAttribute("cadastros"); %>
</body>
</html>
Não tem uma forma do Servlet enviar as informações ao JSP sem que precise adcionar código java dentro da jsp ?
JSTL… EL… Tem várias formas de obter os dados da sessão sem java…
Dá uma pesquisada aí no guj que tem vários exemplos.
JM4X
Novembro 23, 2010, 4:36pm
#5
Use a taglib jsf-html chamada dataTable.
coca1na
Novembro 23, 2010, 4:49pm
#6
Consegui listar…
<%@ taglib uri="http://java.sun.com/jsp/jstl/core" prefix="c" %>
<%@page contentType="text/html" pageEncoding="UTF-8"%>
<!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>Consulta de Cadastros</title>
</head>
<body>
<jsp:useBean id="dao" class="jdbc.dao.CadastroDAO"/>
<table>
<!-- for -->
<c:forEach var="contato" items="${dao.lista}">
<tr>
<td>${contato.nome}</td>
<td>${contato.idade}</td>
<td>${contato.telefone}</td>
<td>${contato.email}</td>
</tr>
</c:forEach>
</table>
</body>
</html>
Valeu a todos !!! e a apostila da caelum 21 tmb
coca1na
Novembro 23, 2010, 4:52pm
#7
Só mais uma coisa…
usando dessa forma… com as taglibs na jsp sem usar servlet… foge ao padrao MVC ?