Hacer llegar datos BBDD a jsp

5erg10
09 de Enero del 2006
Un saludo a [email protected]

Estoy programando un foro utilizando para ello J2EE + Struts + MYSQL y por ahora tengo muy avanzada la parte de insertar datos en la BBDD desde las páginas JSP. Bien, la cosa es que ahora mismo tengo la duda de como hacer llegar los datos de mi BBDD hasta las páginas web.

Cuando son pocos datos no tengo ningún problema, ya que uso las sesiones, por ejemplo cuando se trata de mostrar los datos de un usuario en concreto del foro. La duda viene cuando tengo que mostrar más datos, como por ejemplo una lista de mensajes, o la lista total de usuarios del foro. En este caso no sé si sería correcto hacer uso también de las sesiones, ya que al poder ser una cantidad grande de datos, igual se sobrecarga.

Entonces la duda mía es saber como puedo solucionar esto, a poder ser siguiendo la filosofía de trabajo de Struts (solo con sus etiquetas, usando OTDs...). A ver si alguien puede echarme una mano ;)

neossoftware
09 de Enero del 2006
Que tal:

Pues me da mucho gusto que uses software Open Source, creeme que te felicito, y ademàs por preocuparte por realizar un sistema con buenas practicas de programaciòn, ahora voy con tu pregunta:


Lo que debes de hacer es pasar la informaciòn que sea extensa por request, y en la pagina JSP debes de utilizar las tags de Struts y JSTL para poder accesar a los beans que colocas en los actions:

etiquetas para ciclos, para imprimir mensajes etc.

Ejemplo:


/**
* Este action se encarga de cargar la informacion que hay en
* la tabla TW_PARAMCADPRODUC en una JSP
*
*
* @version 1.0
* @author Hugo Hidalgo Matinez
*/
public class CPACadProductivasLoadTable extends Action {

public ActionForward execute(ActionMapping mapping, ActionForm form,
HttpServletRequest request, HttpServletResponse response)
throws Exception {

ActionErrors errors = new ActionErrors();
ActionForward forward = new ActionForward(); // return value
List listPesos=null;
List listDolares=null;

try {

//Accedemos a la base de datos para cargar las tablas
CPACadenasProductivasBSN bsn= new CPACadenasProductivasBSN();

//obtiene las listas de objetos de cadenas productivas y lo pasa por request
listPesos= bsn.findAllCadenasProducByDivisa("1");
listDolares= bsn.findAllCadenasProducByDivisa("2");

request.setAttribute("listUpdatePesos",listPesos);
request.setAttribute("listUpdateDolares",listDolares);

}catch(CadenasProductivasException e) {

e.printStackTrace();

}catch (Exception e) {

// Report the error using the appropriate name and ID.
errors.add("name", new ActionError("id"));

}

// If a message is required, save the specified key(s)
// into the request for use by the <struts:errors> tag.

if (!errors.isEmpty()) {
saveErrors(request, errors);

// Forward control to the appropriate 'failure' URI (change name as desired)
// forward = mapping.findForward("failure");

} else {

forward = mapping.findForward("success");

}
// Finish with
return (forward);
}
}


Saludos, espero que el consejo te sirva de mucho
SAludos!!!!

Viva el Open Source y Java

5erg10
09 de Enero del 2006
Ahhh, vale. Pues resulta que eso es lo que estaba haciendo antes y me creía que era para las sesiones, y en el request metía los datos del usuario cuando hacía login. Una cosa, entiendo que el contexto del request es la petición actual, es decir, que una vez que se complete la petición, ¿las variables desaparecen automáticamente?

La verdad es que acostumbrarse a trabajar con Struts es bastante duro al principio, ya que te obliga a separar completamente las distintas capas del modelo, pero ahora que le voy cogiendo el punto lo veo bastante más claro. Y encima eso de hacer páginas web que no tengan ninguna línea de código java... jaja se cae en la tentación de meter algo.

Muchas gracias por tu ayuda :)