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