1. Los beans son simplemente clases q tiene propiedades (private String nombre,apellidos,direccion,etc) y cada una de ellas sus respectivos getter and setter methods(setNombre,getNombre,setApellidos,getApelli dos,etc)?
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:
ArrayList a = personaDAO.listar_personas();
request.setAttribute("rsPersonas", a);
return mapping.findForward("verPersonas");
y para mostrarlos en el jsp
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