Foros del Web » Programación para mayores de 30 ;) » Java »

Struts 1.2.9 (NB6.1) - Dudas acerca de los beans, ArrayList y mostrado de datos

Estas en el tema de Struts 1.2.9 (NB6.1) - Dudas acerca de los beans, ArrayList y mostrado de datos en el foro de Java en Foros del Web. 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. ...
  #1 (permalink)  
Antiguo 06/11/2009, 15:19
 
Fecha de Ingreso: enero-2007
Mensajes: 63
Antigüedad: 17 años, 3 meses
Puntos: 2
Pregunta Struts 1.2.9 (NB6.1) - Dudas acerca de los beans, ArrayList y mostrado de datos

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
  #2 (permalink)  
Antiguo 23/12/2010, 08:16
 
Fecha de Ingreso: diciembre-2010
Mensajes: 1
Antigüedad: 13 años, 4 meses
Puntos: 0
Respuesta: Struts 1.2.9 (NB6.1) - Dudas acerca de los beans, ArrayList y mostrado de

Cita:
Iniciado por ClaCS Ver Mensaje
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



Hola soy nuevo en esto y recién me agregado a esta comunidad, estoy empezando a trabajar con Strut, y lo que necesito es algo similar a tu problema, o más sencillo creo, quiero poder cargar varios tipo combobox que despliegues datos de 03 tablas distintas, entonces como puedo llamar a estos tres beans, si con uno funciona bien, con dos tube que asociar el action a donde dirije mi jsp el segundo bean para el segundo combo box y funciono pero necesito hacer más combobox.

Debe haber una forma en donde yo asocio los actions a los bean, como en la propiedad "name=bean", pero que sean más de uno.

Bueno si pudiste arreglar ese problema te agradecería tu ayuda.

Saludos,
Atención: Estás leyendo un tema que no tiene actividad desde hace más de 6 MESES, te recomendamos abrir un Nuevo tema en lugar de responder al actual.
Respuesta




La zona horaria es GMT -6. Ahora son las 11:46.