Ver Mensaje Individual
  #2 (permalink)  
Antiguo 07/11/2009, 16:19
ClaCS
 
Fecha de Ingreso: enero-2007
Mensajes: 63
Antigüedad: 17 años, 3 meses
Puntos: 2
De acuerdo Respuesta: Struts 1.2.9 (NB6.1) - Problemas con ResultSet para el mostrado de Datos

...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:&nbsp;<b><c:out value="${row.usuario}"/></b>
                                        </td>
                                        <td width="226" align="right" valign="middle">
                                            Fecha:&nbsp;<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