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

Coleccion vacia en Struts

Estas en el tema de Coleccion vacia en Struts en el foro de Java en Foros del Web. Buenos días a todos: Ante todo presentarme como nuevo usuario del foro, ya que este es mi primer mensaje y aprovecha para mandarles un cordial ...
  #1 (permalink)  
Antiguo 04/04/2008, 03:27
 
Fecha de Ingreso: abril-2008
Mensajes: 6
Antigüedad: 16 años, 1 mes
Puntos: 0
Coleccion vacia en Struts

Buenos días a todos:

Ante todo presentarme como nuevo usuario del foro, ya que este es mi primer mensaje y aprovecha para mandarles un cordial saludo a todos.
Actualmente estoy realizando un proyecto en Struts y cuando intento recuperar los productos de la base de datos por medio de una coleccion, me dice que está vacía. Agradeceria que me echaran una mano, les pego el codigo:

struts-config.xml:

<struts-config>

<form-beans>
<form-bean name="clienteForm" type="ClienteForm" />
<form-bean name="validarForm" type="ValidarForm" />
<form-bean name="productoslist" type="ProductosListForm" />
</form-beans>
<action-mappings>
<action path="/registrar" name="clienteForm" type="RegistrarAction" validate="false" scope="request">
<forward name="validado" path="/login.jsp"/>
</action>
<action path="/validar" name="validarForm" type="ValidarAction" validate="false" scope="request">
<forward name="validado" path="/tienda.jsp"/>
<forward name="novalidado" path="/bad.jsp"/>
</action>
<action path="/registro" type="org.apache.struts.actions.ForwardAction" parameter="/registro.jsp"/>
<action attribute="productoslist" input="/tienda.jsp" name="productoslist" parameter="step" scope="request" type="ProductosListAction" validate="false">
<forward name="mostrarproductos" path="/tienda.jsp"/>
</action>
</action-mappings>
</struts-config>


ProductosListForm.java

import org.apache.struts.action.ActionForm;
import org.apache.struts.action.ActionMapping;
import javax.servlet.http.HttpServletRequest;
import java.util.*;

public class ProductosListForm extends ActionForm {
private Collection productos;

public Collection getProductos(){
return productos;
}

public void setProductos(Collection productos){
this.productos=productos;
}

public void reset(ActionMapping actionMapping, HttpServletRequest httpServletRequest){
productos= new ArrayList();
}
}

productos.java


public class productos {
private Integer id;
private String producto;
private Integer precio;
private String descripcion;

public productos(Integer id,String producto,Integer precio, String descripcion){
this.id=id;
this.producto=producto;
this.precio=precio;
this.descripcion=descripcion;
}

public Integer getId(){
return id;
}

public void setId(Integer id){
this.id=id;
}

public String getProducto(){
return producto;
}

public void setProducto(String producto){
this.producto=producto;
}

public Integer getPrecio(){
return precio;
}

public void setPrecio(Integer precio){
this.precio=precio;
}

public String getDescripcion(){
return descripcion;
}

public void setDescripcion(String descripcion){
this.descripcion=descripcion;
}
}

ProductosListAction.java


import java.io.*;
import java.net.*;
import javax.servlet.*;
import javax.servlet.http.*;
import org.apache.struts.action.Action;
import org.apache.struts.action.ActionForm;
import org.apache.struts.action.ActionForward;
import org.apache.struts.action.ActionMapping;
import java.util.*;

public class ProductosListAction extends Action{
public ActionForward execute(ActionMapping actionMapping, ActionForm actionForm, HttpServletRequest httpServletRequest, HttpServletResponse httpServletResponse){
ProductosListForm productoslist= (ProductosListForm) actionForm;
Operaciones op= new Operaciones();
productoslist.setProductos(op.MostrarProductos(1)) ;
productoslist.getProductos();
httpServletRequest.setAttribute("productoslist", productoslist);
return(actionMapping.findForward("mostrarproductos "));
}
}

tienda.jsp

<logic:empty name="productoslist">
<td></td>
<td>No existen productos</td>
</logic:empty>
<logic:empty name="productoslist">
<logic:iterate id="product">
<td><bean:write name="product" property="producto" /></td>
<td><bean:write name="product" property="precio" /></td>
<td><bean:write name="product" property="descripcion" /></td>
</logic:iterate>
</logic:empty>

Por cierto, soy novato en Struts, por si teniais alguna duda....

Un Saludo
  #2 (permalink)  
Antiguo 04/04/2008, 08:03
 
Fecha de Ingreso: abril-2008
Mensajes: 6
Antigüedad: 16 años, 1 mes
Puntos: 0
Re: Coleccion vacia en Struts

Gracias Pablo espero ansiadamente una respuesta

Saludoss
  #3 (permalink)  
Antiguo 04/04/2008, 10:34
Avatar de Payin  
Fecha de Ingreso: mayo-2007
Mensajes: 92
Antigüedad: 17 años
Puntos: 0
Re: Coleccion vacia en Struts

en la línea

Operaciones op= new Operaciones();
productoslist.setProductos(op.MostrarProductos(1)) ;

ahi no tienes cargado nada en op, ya que recien fue instanciado.
  #4 (permalink)  
Antiguo 04/04/2008, 13:32
 
Fecha de Ingreso: abril-2008
Mensajes: 6
Antigüedad: 16 años, 1 mes
Puntos: 0
Re: Coleccion vacia en Struts

he hecho cambios en relacion a esa linea incluso creando una Coleccion y asignadoselas antes de pasarla y sigue igual, pego por si acaso hay alguna duda el metodo op.mostrar de la clase Operaciones,ya que me faltaba.


Operaciones.java

public Collection MostrarProductos(Integer id){
Collection producto;
Statement st=null;
ResultSet rs=null;
producto= new ArrayList();
try{
Connection cn=getConnection();
st=cn.createStatement();
String sql="select * from productos where idseccion="+id+"";
rs=st.executeQuery(sql);
while(rs.next()){
producto.add(new productos(id,rs.getString("producto"),rs.getInt("p recio"),rs.getString("descripcion")));
}
cn.close();
}catch(SQLException e){
e.printStackTrace();}
return producto;
}

Gracias de todas formas

Un saludo
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:08.