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

[SOLUCIONADO] JSF reponer tienda virtual

Estas en el tema de JSF reponer tienda virtual en el foro de Java en Foros del Web. Hola! Estoy intentando hacer una tienda virtual haciendo uso del framework JSF. Soy nuevo en este ambito y ando algo perdido. El problema lo tengo ...
  #1 (permalink)  
Antiguo 20/01/2014, 10:54
 
Fecha de Ingreso: enero-2014
Mensajes: 7
Antigüedad: 10 años, 3 meses
Puntos: 0
JSF reponer tienda virtual

Hola!

Estoy intentando hacer una tienda virtual haciendo uso del framework JSF. Soy nuevo en este ambito y ando algo perdido. El problema lo tengo al realizar la reposición de productos.

La tabla simplificada del producto a reponer es esta

PRODUCTO(
CODIGO VARCHAR
CANTIDAD INTEGER
)


y el formulario en reponer.xhtml:

<h:form>
<h:outputText value="Cantidad" title="Cantidad"/>
<h:inputText id="cantidad" value="#{ProductMB.cantidad}" label="cantidad"/>
<h:commandButton id="submit" value="ENVIAR" action="#{ProductMB.reponer}"/>
</h:form>

El Managed Bean ProductMB:

private String page = "user";
private Producto producto;
private int cantidad;

public int getCantidad() {
return cantidad;
}

public void setCantidad(int cantidad) {
this.cantidad = cantidad;
}

public String reponer() {
producto = productoFacade.find(codigo);
int unidades = producto.getCantidad() + cantidad;
producto.setCantidad(unidades);
page = "actualizado";
return page;
}


Y el error que me indica es el siguiente
"/producto/reponer.xhtml @50,122 value="#{ProductMB.cantidad}": Target Unreachable, identifier 'ProductMB' resolved to null"

Llevo dos días con ello...Espero que me podais ayudar. Gracias!
  #2 (permalink)  
Antiguo 20/01/2014, 13:05
Avatar de HackmanC  
Fecha de Ingreso: enero-2008
Ubicación: Guatemala
Mensajes: 1.817
Antigüedad: 16 años, 2 meses
Puntos: 260
Sonrisa Respuesta: JSF reponer tienda virtual

Hola,

Cita:
Iniciado por edin90 Ver Mensaje
...Y el error que me indica es el siguiente
"/producto/reponer.xhtml @50,122 value="#{ProductMB.cantidad}": Target Unreachable, identifier 'ProductMB' resolved to null"
...
Básicamente ProductMB no es un Managed Bean o no está registrado en CDI.
¿Como hiciste para registrarlo como un Managed Bean?
Posiblemente por allí está la respuesta.

Saludos,
  #3 (permalink)  
Antiguo 22/01/2014, 09:15
 
Fecha de Ingreso: enero-2014
Mensajes: 7
Antigüedad: 10 años, 3 meses
Puntos: 0
Respuesta: JSF reponer tienda virtual

Para crear el managed bean use la opción new JSF managed bean the eclipse.

He vuelto a hacer el proyecto entero desde cero por si era debiso a algún fallo y me sigue dando el mismo error.
Que tengo que hacer algo para registrarlo en CDI?


Muchas gracias .
  #4 (permalink)  
Antiguo 22/01/2014, 10:40
Avatar de pablor21  
Fecha de Ingreso: noviembre-2008
Ubicación: Montevideo - Uruguay
Mensajes: 197
Antigüedad: 15 años, 5 meses
Puntos: 13
Respuesta: JSF reponer tienda virtual

Mmmm... parece que estuvieras usando JSF 1.x en vez de 2.x... prueba la versión de la librería jsf que estás usando...

Estás usando maven?
__________________
Desarrolloador Freelance - http://www.mvdit.com.uy
  #5 (permalink)  
Antiguo 22/01/2014, 10:51
 
Fecha de Ingreso: enero-2014
Mensajes: 7
Antigüedad: 10 años, 3 meses
Puntos: 0
Respuesta: JSF reponer tienda virtual

Estoy usando JSF 2.2 y no uso maven...

Soy muy novato, asi que seguro que ando haciendo algo mal, solo que no logro encontrarlo

Muchas gracias
  #6 (permalink)  
Antiguo 22/01/2014, 11:00
Avatar de pablor21  
Fecha de Ingreso: noviembre-2008
Ubicación: Montevideo - Uruguay
Mensajes: 197
Antigüedad: 15 años, 5 meses
Puntos: 13
Respuesta: JSF reponer tienda virtual

prueba si te funciona con @Named en vez de @ManagedBean... por otro lado tiene el archivo beans.xml? que servidor estás usando? Tomcat?
__________________
Desarrolloador Freelance - http://www.mvdit.com.uy
  #7 (permalink)  
Antiguo 22/01/2014, 11:12
 
Fecha de Ingreso: enero-2014
Mensajes: 7
Antigüedad: 10 años, 3 meses
Puntos: 0
Respuesta: JSF reponer tienda virtual

He cambiado y sigue sin funcionar... Por otro lado no tengo el archivo beans.xml, ¿para que sirve?

El caso es que en la misma aplicación tengo otro managed bean para el inicio de sesión según usuario y me va bien. Igual estoy cometiendo ahí un error al tener dos managed bean en una misma aplicación? ¿o no tiene nada que ver?

Estoy usando glassFish que viene con Netbeans.

Muchas gracias
  #8 (permalink)  
Antiguo 22/01/2014, 11:17
Avatar de pablor21  
Fecha de Ingreso: noviembre-2008
Ubicación: Montevideo - Uruguay
Mensajes: 197
Antigüedad: 15 años, 5 meses
Puntos: 13
Respuesta: JSF reponer tienda virtual

podrías poner el código completo de tu MBean? incluyendo las anotaciones
__________________
Desarrolloador Freelance - http://www.mvdit.com.uy
  #9 (permalink)  
Antiguo 22/01/2014, 11:25
Avatar de pablor21  
Fecha de Ingreso: noviembre-2008
Ubicación: Montevideo - Uruguay
Mensajes: 197
Antigüedad: 15 años, 5 meses
Puntos: 13
Respuesta: JSF reponer tienda virtual

A propósito, sin archivo beans.xml no hay CDI.
__________________
Desarrolloador Freelance - http://www.mvdit.com.uy
  #10 (permalink)  
Antiguo 22/01/2014, 11:31
 
Fecha de Ingreso: enero-2014
Mensajes: 7
Antigüedad: 10 años, 3 meses
Puntos: 0
Respuesta: JSF reponer tienda virtual

Aqui tienes, es muy simple...

Código:
package mbeans;

import beans.Producto;
import beans.ProductoFacade;
import javax.ejb.EJB;
import javax.faces.bean.ManagedBean;
import javax.faces.bean.RequestScoped;


@ManagedBean
@RequestScoped
public class ProductMB {
    
    @EJB
    private ProductoFacade productoFacade;

    public ProductMB() {
    }
    
    private String codigo;
    private double precio; 
    private int cantidad; 
    private Producto producto; 

    
    
    public String getCodigo() { 
        return codigo;
    }
    
    public void setCodigo(String codigo) { 
        this.codigo = codigo; 
    } 
    
 
    public double getPrecio() { 
        return precio; 
    } 
 
    public void setPrecio(double precio) { 
        this.precio = precio; 
    }
    
    public int getCantidad() { 
        return cantidad; 
    } 
 
    public void setCantidad(int cantidad) { 
        this.cantidad = cantidad; 
    }
    
    
     public String reponer() {
	producto = productoFacade.find(codigo);
	int unidades = producto.getCantidad() + cantidad;
	producto.setCantidad(unidades);
	return = "actualizado";
     }

}
  #11 (permalink)  
Antiguo 22/01/2014, 11:48
Avatar de pablor21  
Fecha de Ingreso: noviembre-2008
Ubicación: Montevideo - Uruguay
Mensajes: 197
Antigüedad: 15 años, 5 meses
Puntos: 13
Respuesta: JSF reponer tienda virtual

El tema creo es la mayúscula en ProductMB, en la vista debería ser productMB, prueba y me comentas porque no tengo para probarlo...
__________________
Desarrolloador Freelance - http://www.mvdit.com.uy
  #12 (permalink)  
Antiguo 22/01/2014, 11:59
 
Fecha de Ingreso: enero-2014
Mensajes: 7
Antigüedad: 10 años, 3 meses
Puntos: 0
Respuesta: JSF reponer tienda virtual

Funciona!!!!

Menudo fallo más idiota.....

muchisimas gracias!
  #13 (permalink)  
Antiguo 22/01/2014, 12:07
Avatar de pablor21  
Fecha de Ingreso: noviembre-2008
Ubicación: Montevideo - Uruguay
Mensajes: 197
Antigüedad: 15 años, 5 meses
Puntos: 13
Respuesta: JSF reponer tienda virtual

Sí, esos son los fallos más complicados de detectar casi siempre... como comentario, te recomendaría que en la anotación pusieras el nombre del bean así no tienes problemas, así:

@ManagedBean(name = "tuNombre")
public class ...
__________________
Desarrolloador Freelance - http://www.mvdit.com.uy
  #14 (permalink)  
Antiguo 22/01/2014, 12:14
 
Fecha de Ingreso: enero-2014
Mensajes: 7
Antigüedad: 10 años, 3 meses
Puntos: 0
Respuesta: JSF reponer tienda virtual

Gracias por el consejo!

Etiquetas: jsf
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:43.