...siguiendo con la investigacion ...
ya logre hacer lo q deseaba ... mostrar datos de un resulset en mi jsp
Hay q tener en cuenta lo siguiente
1. Personalmente no me gusta mucho el uso de beans ya q los veo en algunos (o en la mayoria) de los casos innecesarios (disculpen mi ignorancia, si es q me equivoco x favor haganmelo saber) Debido a esto estuve buscando otras formas de capturar, almacenar y mostrar los datos desde la BD hacia un jsp y es ahi donde encontre los JSTL :)
2. los jstl tienen una especie de resultset llamado Result (javax.servlet.jsp.jstl.sql.Result) y q junto con ResultSupport (javax.servlet.jsp.jstl.sql.ResultSupport) nos ayudaran a obtener nuestro objetivo Lo execelente de este Result es q se mantiene a pesar de haber cerrado la conexion del ResultSet :) ...esto nos sera de muchisima ayuda
3.Descargamos los jstl jar necesarios jstl.jar y standard.jar y los agregamos a nuestro proyecto. Ademas tb bajar el c.tld y ponerlo junto a los otros tlds (no recuerdo exactamente la pagina pero con la ayuda de google... ;) )
4. configurar el web.xml y agregarle
Código:
<taglib>
<taglib-uri>/WEB-INF/c.tld</taglib-uri>
<taglib-location>/WEB-INF/c.tld</taglib-location>
</taglib>
5.Listo! con esto ya podemos utilizar los jstl en nuestro proyecto. Ahora ... en comentariosDAO
Código:
import javax.servlet.jsp.jstl.sql.Result;
import javax.servlet.jsp.jstl.sql.ResultSupport;
...
static public Result listar_comentarios() throws Exception {
PreparedStatement ps = null;
ResultSet rs = null;
conexion db = new conexion();
Connection cnn = db.getConnection();
Result result = null;
try {
String sql = "select comentario,fecha,usuario from comments";
ps = cnn.prepareStatement(sql);
rs = ps.executeQuery();
result = ResultSupport.toResult(rs);
} finally {
if (cnn != null) {
cnn.close();
}
}
return result;
}
in the Action class
Código:
import javax.servlet.jsp.jstl.sql.Result;
import javax.servlet.http.HttpSession;
...
Result rs = categoriaDAO.listar_categoria();
HttpSession s = request.getSession(true);
s.setAttribute("rs", rs);
y para mostrar los comentarios usare una tabla diferente a la habitual grilla (diseñisticamente hablando .. asi se dice?? je! )
comments.jsp
Código:
<%@ taglib uri="/WEB-INF/c.tld" prefix="c" %>
...
<h3>Ver Comentarios</h3>
<hr>
<html:form action="/verComentarios">
<table width="680" border="1">
<tbody>
<c:forEach var="row" items="${rs.rows}">
<tr>
<td colspan="2" align="left" valign="middle">
Usuario: <b><c:out value="${row.usuario}"/></b>
</td>
<td width="226" align="right" valign="middle">
Fecha: <b><c:out value="${row.fecha}"/></b>
</td>
</tr>
<tr>
<td colspan="3" align="left" valign="middle"><c:out value="${row.comentario}"/></td>
</tr>
</c:forEach>
</tbody>
</table>
</html:form>
Voila! Con esto ya tenemos nuestra tabla con datos en nuestro jsp (Los $ me hacen recordar a php ... jeje aquellos tiempos) ... facil no?
...acerca de "usare una tabla diferente a la habitual grilla" lo dije debido a q muchas veces deseamos mostrar los datos no solo como columnas y filas (grilla). Si ven el diseño de la tabla del jsp me entenderan ;)
Un claro ejem de esto (en .NET) es la existencia de 2 controles para mostrar los datos el GridView (grilla) y el DataList (q es algo como lo q intento hacer con este ejem) ... los q saben .nET me comprenderan ;)
Bueno sin querer como q me salio un minitutorial jejeje ... Espero le sea esto a alguien de mucha ayuda (ya q me demore a lot of time searching the info)
...ojo q este metodo lo implemente debido a lo facil y practico q es (y como dije I don't like the beans!) ... si alguien (con experiencia en Struts xq yo recien me estoy iniciando) tiene alguna mejor manera de hacerlo pues bienvenido sea para bien de todos :)
Salu2