2. Los beans son obligatoriamente necesarios para mostrar datos en mi jsp??
imaginemos mi BD con las tablas relacionadas
[user] <-[user_persona]-> [persona]
user_id user_id persona_id
username persona_id nombres
pass apellidos,etc
por lo cual creo mis userBean y personaBean con sus respectivos atributos y setters and getters methods con cada uno de los campos de sus tablas correspondientes en la BD
esta relacion me da como resultado q usuarios pertenecen a q persona ya q no todas las personas en el sistema tienen un usuario
ahora hacemos una consulta a la BD para recoger todos los datos de todas persona
en personaDAO
Código:
static public ArrayList listar_personas() throws Exception { PreparedStatement ps = null; ResultSet rs = null; conexion db = new conexion(); Connection cnn = db.getConnection(); personaBean p = new personaBean(); ArrayList a = new ArrayList(); try { String sql = "select * from personas"; ps = cnn.prepareStatement(sql); rs = ps.executeQuery(); while(rs.next()) { p.setNombre(rs.getString("nombre")); p.setApellidos(rs.getString("apellidos")); p.setDireccion(rs.getString("direccion")); a.add(p) } } finally { if (cnn != null) { cnn.close(); } } return a; }
Esto me devolveria un ArrayList q contiene objetos del tipo personaBean para mandarlos a la pagina q deseo q se muetren ... ahora en el Action
Código:
y para mostrarlos en el jspArrayList a = personaDAO.listar_personas(); request.setAttribute("rsPersonas", a); return mapping.findForward("verPersonas");
Código:
<h3>Lista de Personas</h3> <hr> <table border="1"> <tbody> <logic:iterate id="rs" name="rsPersona"> <tr> <td> <bean:write name="rs" property="nombres"/> </td> <td> <bean:write name="rs" property="apellidos"/> </td> ... </tr> </logic:iterate> </tbody> </table>
con esto me mostraria una tabla de todas las personas devueltas por la consulta a la BD...estoy en lo correcto??
3. Pero si quiero mostrar en mi jsp una tabla q tenga datos de mas de una tabla??
Si es mas de una tabla entonces debo utilizar mas de un bean??? o se podran juntar 2 beans existentes?? ...
Ahora en mi jsp deseo mostrar los usernames y los datos de las personas a las q pertenecen ...algo asi
users | personas | direccion |...
------------------------------------------------------------------
usuario1 | carlos menzoza zavaleta | ... |
usuario2 | jimy arteaga cotrina | ... |
es obvio q para mostrar ahora estos datos tengo q crear un nuevo DAO (usuario_personaDAO) q utilice un nuevo bean (usuarioPersonaBean) y este bean tiene q tener todos los atributos de ambas tablas y sus respectivos setter and getter methods .... es esto cierto?? o me equivoco??
y si tengo un sistema demasiado complejo en el q recurrentemente tengo varios jsp en donde se muestren la informacion de 2,3,etc tablas al mismo tiempo (como el ejm anterior donde se muestra infor de 2 tablas) tengo q crear por cada una de estas tablas necesariamente sus beans??? me llenaria de beans o hay alguna forma en q se puedan "juntar" pero sin tener la necesidad de crear un nuevo bean ??... no creen q es muy engorroso trabajar con los beans???
No se podria hacer simplemente con un ArrayList o algun otro tipo de objeto lista (vector,hashmap,etc) ?? ... tal vez un objeto como el ResultSet ... pero cual y como se podria utilizar en un caso como el q he mencionado antes???
O es exclusivamente necesario el uso de beans para q los datos q se obtienen de una BD se muestren (con la ayuda de los tags de Struts [logic:iterator y bean:write]) en una jsp???
gracias por todo de antemano