Código:
y lo paso al jsp por el Actionstatic public ResulSet listar_personas() throws Exception { PreparedStatement ps = null; ResultSet rs = null; conexion db = new conexion(); Connection cnn = db.getConnection(); try { String sql = "select * from personas"; ps = cnn.prepareStatement(sql); rs = ps.executeQuery(); } finally { if (cnn != null) { cnn.close(); } } return rs; }
Código:
y en el jsp no se como llenar la tabla con el ResulSet y el <logic:iterator>ResultSet rs = personaDAO.listar_personas(); request.setAttribute("rsPersonas", rs); return mapping.findForward("verPersonas");
pero al hacer la prueba con un text para ver si me devuelve datos el ResultSet
Código:
me sale un error sql q me dice "la conexion esta cerrada" ... viendo el codigo este error es obvio ya q antes de devolver el ResultSet cierro la conexion en el personaDAO<%@ page import="java.sql.ResultSet" %> ... Nombres: <input type="text" value='<%=((ResulSet) request.getAttribute("rsPersonas")).getString("nombres") %>'>
Entonces me pregunte si existe una forma de mantener el ResultSet estando cerrada la conexion y me encontre con com.sun.rowset.CachedRowSetImpl q es como una copia del ResulSet pero q permance activa a pesar de haber cerrado la conexion ...
modificando personaDAO
Código:
static public CachedRowSetImpl listar_personas() throws Exception { PreparedStatement ps = null; ResultSet rs = null; conexion db = new conexion(); Connection cnn = db.getConnection(); CachedRowSetImpl c = new CachedRowSetImpl(); try { String sql = "select * from personas"; ps = cnn.prepareStatement(sql); rs = ps.executeQuery(); c.populate(rs); } finally { if (cnn != null) { cnn.close(); } } return c; }
el problema es q no se como acceder a los datos de cada columna q tiene el objeto y despues hacerlo trabajar con el <logic:iterator> en el jsp (lo mismo me sucede con el ResultSet q comente al inicio)
Existe alguna otra forma de poder capturar los datos, mantenerlos y mostrarlos??? sin necesidad de un ResulSet, CachedRowSetImpl o bean??? O se podra simplemente con estos...como???
gracias por todo de antemano