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

<logic:iterate> y base de datos

Estas en el tema de <logic:iterate> y base de datos en el foro de Java en Foros del Web. Holaaa! Necesito una ayuda con mi aplicación web. A ver estoy usando Java con Struts y se trata de una pagina privada con cuenta de ...
  #1 (permalink)  
Antiguo 24/02/2012, 08:51
 
Fecha de Ingreso: febrero-2012
Mensajes: 15
Antigüedad: 12 años, 2 meses
Puntos: 0
<logic:iterate> y base de datos

Holaaa!
Necesito una ayuda con mi aplicación web. A ver estoy usando Java con Struts y se trata de una pagina privada con cuenta de usuario. El tema es que en la pagina principal tengo una serie de opciones: escribanos,mis datos y cerrar sesión. Me funcionan excepto mis datos que quiero que obtenga los datos del usuario activo y los visualice.
Mi problema esta con el acceso a la base de datos creo porque cuando no hago una llamada a la función sino que pongo directamente un nombre cualquiera si me funciona.
En el archivo usuarioDao.java tengo la función sacarDatosUsuario() que se conecta con la base de datos. Tb tengo el archivo usuarioBo que hace una llamada a usuarioDao y el usuarioVo, opcionesForm y opcionesAction.
Aqui os detallo el codigo:


UsuarioDao.java
============

public UsuarioVO sacarDatosUsuario2(UsuarioVO usuarioVo) {

Connection conn = null;
PreparedStatement pstmt = null;
ResultSet rset = null;
ConexionBD conecta= new ConexionBD();


try {
if(conecta.crearConexion()){
conn = conecta.getConexion();

String sentencia = "SELECT * FROM USUARIO WHERE EMAIL=?";
pstmt = conn.prepareStatement(sentencia);
pstmt.setString(1, usuarioVo.getEmail());
rset = pstmt.executeQuery();

if (rset == null || !rset.first()) {
return null;}

rset.first();

usuarioVo.setEmail(rset.getString("EMAIL"));
usuarioVo.setPassword(rset.getString("PASSWORD"));
usuarioVo.setNombre(rset.getString("NOMBRE"));
usuarioVo.setApellido1(rset.getString("APELLIDO1") );
}

} catch (SQLException e)
.
...


UsuarioBO.java
==========

public UsuarioVO sacarDatosUsuario2(UsuarioVO usuarioVo)
{
UsuarioDao usuarioDao =new UsuarioDao();
UsuarioVO retorno= usuarioDao.sacarDatosUsuario2(usuarioVo);
return retorno;
}


Bueno el UsuarioVo y OpcionesForm son dos Form donde están los getter y los setters que creo que no hace falta escribirlo.

OpcionesAction.java
===============


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

String accion = request.getParameter("accion");

if(accion == null){
return mapping.findForward("exito");
}
if(accion.equals("inicio")){
return mapping.findForward("inicio");
}
if(accion.equals("misdatos")){

UsuarioVO usuarioVo=new UsuarioVO();
UsuarioBO usuarioBo = new UsuarioBO();
ArrayList MisDatos=new ArrayList();
OpcionesForm misdatosForm=new OpcionesForm();

String email = misdatosForm.getEmail();
usuarioVo.setEmail(email);
//usuarioVo=usuarioBo.sacarDatosUsuario2(usuarioVo);
misdatosForm.setEmail(usuarioVo.getEmail());
MisDatos.add(misdatosForm);
request.setAttribute("MisDatos",MisDatos);

return mapping.findForward("misdatos");

}
if(accion.equals("escribenos")){

return mapping.findForward("escribenos");
}
if(accion.equals("cerrarsesion")){
//quitar sesion
HttpSession sesion=request.getSession();
sesion.invalidate();

return mapping.findForward("cerrarsesion");
}

return mapping.findForward("exito");
}



Bien en la jsp lo siguiente:


<html:html>
<head>
<meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
<link href="style.css" rel="stylesheet" type="text/css" />
<title><bean:message key="title.misdatos"/></title>
</head>
<body>

<div id="header">
</div>

<div id="strike">
<br><br> <h1 align="center"><bean:message key="title.misdatos"/></h1><br><br>

</div>

</body>

<html:form action="/misdatosAction">
<div id="nav">
<ul>
<li><a href="/PruebaStruts/misdatosAction.do?accion=modificarusuario"><bean:m essage key="button.modificarusuario"/></a></li>
<li><a href="/PruebaStruts/misdatosAction.do?accion=borrarusuario"><bean:mess age key="button.borrarusuario"/></a></li>
<li><a href="/PruebaStruts/misdatosAction.do?accion=atras"><bean:message key="button.volver"/></a></li>
</ul>
</div>
</html:form>

<div id="body">
<logic:iterate id="usuarioVo" name="MisDatos">

<table align="center">
<tr>
<td align="right" width="50">
<h5><bean:message key="label.email"/>:</h5>
</td>
<td align="left" width="50">

<h5><bean:write name="usuarioVo" property="email"/></h5>
</td>
</tr>

<tr>
<td align="right" width="50">
<h5><bean:message key="label.nombre"/>:</h5>
</td>
<td align="left" width="50">
<h5><bean:write name="usuarioVo" property="nombre"/></h5>
</td>
</tr>
<tr>
<td align="right" width="50">
<h5><bean:message key="label.apellido"/>:</h5>
</td>
<td align="left" width="50">
<h5><bean:write name="usuarioVo" property="apellido1"/></h5>
</td>
</tr>
</table>
</div>
</logic:iterate>

</html:html>




Creo que esta claro lo que quiero.....que obteniendo el email del usuario que esta dentro de la sesión obtenga los demás datos de la base de datos y se visualicen en la jsp.
Lo que no llego a saber hacer es como ponerlo en el Action porque yo creo que las otras funciones están bien hechas.... Lo que intento hacer es almacenar todos los datos en un ArrayList y luego visualizarlo por el property.
Tb hice otra versión del SacarDatosUsuario en el DAO para que los datos se añadieran en un arrayList y devolviera ese array pero tp me iba.....

Por favor ayudarme que llevo ya bastante tiempo en esto y no caigo!!!
muchas gracias


Cristina.
  #2 (permalink)  
Antiguo 24/02/2012, 10:49
Avatar de leidy_03  
Fecha de Ingreso: septiembre-2008
Mensajes: 83
Antigüedad: 15 años, 7 meses
Puntos: 0
Respuesta: <logic:iterate> y base de datos

Cristina, en sintesis, tu inconveniente es que no puedes traer los datos de la base de datos, no se si depronto te muestra algun null, al momento de correr la aplicación.
  #3 (permalink)  
Antiguo 24/02/2012, 11:02
 
Fecha de Ingreso: febrero-2012
Mensajes: 15
Antigüedad: 12 años, 2 meses
Puntos: 0
Respuesta: <logic:iterate> y base de datos

Gracias por contestar!
Si, si llamo en el Action a la funcion sacarDatosUsuario() sique me sale un nullpointer, si no la llamo no me sale ningún valor, en blanco directamente.
Pero entonces como podría hacerlo???

Etiquetas: jsp, string
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 12:52.