O negocio e o seguinte. Eu tenho uma Action que chama uma classe de acesso ao banco, chamo um metodo dela
protected ResultSet select(){
try{
Statement stmt = con.createStatement();
rs = stmt.executeQuery(props.getProperty("select.empresa"));
}
catch(SQLException sqle){
System.out.println("marujo4");
sqle.printStackTrace();
//erro de conexao
}
return rs;
}
que retorna um ResultSet, na Action eu armazeno no Contexto da requisição
req.setAttribute("rs_empresa", ceb.select());
return map.findForward("sucesso");
que ai retorna um ActionFoward que irá chamar tbl_empresa.jsp
<%@ page isELIgnored="false" %>
<%@ taglib uri="http://java.sun.com/jsp/jstl/core" prefix="c" %>
<table>
<c:forEach var="row" items="${requestScope.rs_empresa}" >
<tr>
<td><c:out value="${row}" /></td>
</tr>
</c:forEach>
</table>
O problema e essa jsp q ta errada mas n sei como posso fazer ela mostrar o resultado do banco. Será q alguém pode me ajudar a fazer isso???
_fs
Março 12, 2005, 12:58am
#2
Não faça isso.
Copie o conteúdo do resultSet para uma Collection e feche o resultSet e a connection o mais rápido possível .
Então trabalhe com a COLLECTION na sua JSP.
[edited]eu corrigí, Lipe (DD)[\edited]
public ActionForward cadastrar(ActionMapping map, ActionForm form, HttpServletRequest req,
HttpServletResponse res) throws IOException, ServletException{
//PrintWriter out = res.getWriter();
//out.print("cadastrar");
CadastrarEmpresaForm cef = (CadastrarEmpresaForm) form;
CadastrarEmpresaBanco ceb = new CadastrarEmpresaBanco();
ceb.insert(cef.getCnpj(), cef.getRazaosocial(), cef.getNomefantasia(), cef.getRua(), cef.getNumero(), cef.getBairro(), cef.getCidade(), cef.getUf());
req.setAttribute("rs_empresa", ceb.select());
return map.findForward("sucesso");
}
o problema esta nessa linha, qd deixo ela no codigo o servidor feicha sozinho o q q esta acontecendo??? Como posso fazer para compartilhar a Collection, q passei a ResultSet para ela, para poder pegar ela na JSP p mostrar os campos???
Codigo da jsp
[code]
<%@ page isELIgnored=“false” %>
<%@ taglib uri=“http://java.sun.com/jsp/jstl/core ” prefix=“c” %>
<html>
<body>
<table>
<c:forEach var=“row” items="${requestScope.rs_empresa}" >
<tr>
<td><c:out value="${row.cnpj}" /></td>
<td><c:out value="${row.razao_social}" /></td>
<td><c:out value="${row.nome_fantasia}" /></td>
<td><c:out value="${row.rua}" /></td>
<td><c:out value="${row.numero}" /></td>
<td><c:out value="${row.bairro}" /></td>
<td><c:out value="${row.cidade}" /></td>
<td><c:out value="${row.uf}" /></td>
</tr>
</c:forEach>
</table>
</body>
</html>
codigo onde seleciono a tabela e passo o resultado p Action onde esta o 1º codigo
protected Collection select(){
try{
Statement stmt = con.createStatement();
rs = stmt.executeQuery(props.getProperty("select.empresa"));
Collection c = (Collection) rs;
return c;
}
catch(SQLException sqle){
System.out.println("marujo4");
sqle.printStackTrace();
//erro de conexao
}
return (Collection) rs;
}
a linha e essa
req.setAttribute("rs_empresa", ceb.select());
feicha n e fecha.
alguem se manifeste aí, que tou com o projeto parado pq n to conseguindo mostrar o resultado do ResultSet na JSP