Ver Mensaje Individual
  #1 (permalink)  
Antiguo 03/08/2011, 09:55
Avatar de oscarsb1988
oscarsb1988
 
Fecha de Ingreso: abril-2010
Mensajes: 40
Antigüedad: 14 años
Puntos: 0
De acuerdo UseBean: No pudo encontrar información de la propiedad

Saludos:

Estoy realizando un proyecto web en J2EE con conexión a Base de Datos MySQL, y estoy comenzando a usar los UseBean.

Por una parte, tengo la clase Productos, con todos los campos encapsulados y en teoría todo correcto. ( Está dentro del paquete Modelo ).

Código JAVA:
Ver original
  1. public class Productos {
  2.     private int CodigoP;
  3.     private String Nombre;
  4.     private int Stock;
  5.     private double Precio;
  6.     private double PrecioTotal;
  7.    
  8.     public Productos(){
  9.        
  10.     }
  11.  
  12.     /**
  13.      * @return the CodigoP
  14.      */
  15.     public int getCodigoP() {
  16.         return CodigoP;
  17.     }
  18.  
  19.     /**
  20.      * @param CodigoP the CodigoP to set
  21.      */
  22.     public void setCodigoP(int CodigoP) {
  23.         this.CodigoP = CodigoP;
  24.     }
  25.  
  26.     /**
  27.      * @return the Nombre
  28.      */
  29.     public String getNombre() {
  30.         return Nombre;
  31.     }
  32.  
  33.     /**
  34.      * @param Nombre the Nombre to set
  35.      */
  36.     public void setNombre(String Nombre) {
  37.         this.Nombre = Nombre;
  38.     }
  39.  
  40.     /**
  41.      * @return the Stock
  42.      */
  43.     public int getStock() {
  44.         return Stock;
  45.     }
  46.  
  47.     /**
  48.      * @param Stock the Stock to set
  49.      */
  50.     public void setStock(int Stock) {
  51.         this.Stock = Stock;
  52.     }
  53.  
  54.     /**
  55.      * @return the Precio
  56.      */
  57.     public double getPrecio() {
  58.         return Precio;
  59.     }
  60.  
  61.     /**
  62.      * @param Precio the Precio to set
  63.      */
  64.     public void setPrecio(double Precio) {
  65.         this.Precio = Precio;
  66.     }
  67.  
  68.     /**
  69.      * @return the PrecioTotal
  70.      */
  71.     public double getPrecioTotal() {
  72.         return PrecioTotal;
  73.     }
  74.  
  75.     /**
  76.      * @param PrecioTotal the PrecioTotal to set
  77.      */
  78.     public void setPrecioTotal(double PrecioTotal) {
  79.         this.PrecioTotal = PrecioTotal;
  80.     }
  81. }

Por otro lado, dispongo de un archivo JSP que carga todos los productos que contiene la tabla PRODUCTOS de la Base de Datos, incluidas sus columnas.

Código JAVA:
Ver original
  1. <table border="1">
  2.                             <tr><td>Nombre</td><td>Precio</td><td>Cantidad</td><td>Precio Total</td></tr>
  3.                         <%for (int i=1;i<=st.getMaxRows();i++);
  4.                         {%>
  5.                             <tr>
  6.                             <%for (int j=1;j<=rs.getMetaData().getColumnCount();j++);
  7.                             {                
  8.                                              
  9.                                        
  10.                                         while (rs.next())
  11.                                         {
  12.                                                 try {
  13.                                                    
  14.                                                     Nombre = rs.getString("Nombre");
  15.                                                     Cantidad = request.getParameter(Nombre); //Devuelve lo introducido en el textbox
  16.                                                     CantidadBean = Integer.parseInt(Cantidad);
  17.                                                     Precio = rs.getDouble("Precio");
  18.                                                     Stock = rs.getInt("Stock");
  19.                                                     PrecioTotal = Integer.parseInt(Cantidad) * Precio;
  20.                                                     Total+= PrecioTotal;
  21.                                                     System.out.println("CORRECTO Cantidad: " + Cantidad + " Nombre: " + Nombre + " Precio: " + Precio + " Stock: " + Stock + " Precio Total: " + PrecioTotal);                                                                                                
  22.                                                     %>
  23.                                                     <!--Los datos de las "tablas" a objetos -->
  24.                                                     <jsp:useBean id="<%=Nombre%>" class="Modelo.Productos">
  25.                                                         <jsp:setProperty name="<%=Nombre%>" property="Stock" value="<%=CantidadBean%>"/>                      
  26.                                                    </jsp:useBean>
  27.                                                     <%
  28.                                                     }catch(Exception e){
  29.                                                     System.out.println(e.getMessage());
  30.                                                     System.out.println("ERROR Cantidad: " + Cantidad + " Nombre: " + Nombre + " Precio: " + Precio + " Stock: " + Stock + " Precio Total: " + PrecioTotal);
  31.                                                 }            
  32.                                             %>
  33.                                             <td><%=Nombre%></td><td><%=Precio%></td><td><%=Cantidad%></td><td><%=PrecioTotal%></td></tr>  
  34.                                             <%      
  35.                                             //}
  36.                                        }
  37.                                 }
  38.                             } %>
  39.                             <tr><td colspan="3">TOTAL A PAGAR</td><td><%=Total%></td></tr>
  40.                         </table>

La idea, es que el UseBean guarde el valor CantidadBean, que convierte a Int su valor String, que recoge de otro archivo JSP ( de un textbox ) mediante request.getparameter.

La idea es que el UseBean cree tantos objetos como filas (productos) tenga la tabla.

El problema, es que al ejecutarlo, me salta el error:

Código JAVA:
Ver original
  1. GRAVE: Servlet.service() for servlet [jsp] in context with path [/Septiembre] threw exception [No puedo encontrar información de la propiedad 'Stock' en un bean del tipo 'Modelo.Productos'] with root cause
  2. org.apache.jasper.JasperException: No puedo encontrar información de la propiedad 'Stock' en un bean del tipo 'Modelo.Productos'

Dicho error, me da a entender que el SetParameter de la Propiedad Stock...¿No recoge nada? (Corregidme si estoy equivocado ).

Código JAVA:
Ver original
  1. <jsp:useBean id="<%=Nombre%>" class="Modelo.Productos">
  2.  <jsp:setProperty name="<%=Nombre%>" property="Stock" value="<%=CantidadBean%>"/>                      
  3. </jsp:useBean>

Por lo que intuyo, es que el error, se encuentra en el atributo value. Por eso me gustaría que le echáseis un vistazo, a ver si lográis comprender la causa del error y alguna posible solución.

Gracias :)