Recuperar el parametro con f:param
Buenas tardes gente resulta que estoy terminado una aplicacion jsp con jsf 1.2 y quiero recuperar el valor de un parametro mediante las core y el parametro es un numero e intento convertirlo a Integer con el metodo parseInt y me dice que me llega a "" y no puedo convertirlo pongo el codigo de la jsp y el action a ver si alguien me pudiera ayudar muchas gracias...
JSP
<c:set var="productos" value="${productoAction.productosPagination}" />
<c:forEach var="producto" items="${productos }">
<div class="entry">
<br />
<br />
<h:form>
<div id="derecha">
<h2>${producto.marca.nombre }</h2>
<br>
<h2>${producto.categoria.nombre }</h2>
<br> <img class="photo" src="fotos/${producto.id}.jpg">
<br />
<h2>${producto.precio }</h2>
<h:commandLink value="carrito" action="#{cestaAction.guardar}">
<f:param name="id" value="#{producto.id }"></f:param>
</h:commandLink>
</div>
<br />
<br />
<br />
<br />
<div id="izquierda">
<c:forEach var="descripcion"
items="${producto.descripcionRegion}">
<p>${fn:replace(descripcion.texto, saltoLinea, '<br />')}</p>
</c:forEach>
</div>
</h:form>
</div>
<br />
<br />
<br />
<br />
</c:forEach>
Codigo Java
FacesContext context = FacesContext.getCurrentInstance();
HttpServletRequest request = (HttpServletRequest) context.getExternalContext().getRequest();
Map<String, Object> sesion = context.getExternalContext()
.getSessionMap();
HttpSession session = request.getSession();
int id = Integer.parseInt((String) session.getAttribute("id"));
System.out.println(id);
Cesta cesta = (Cesta) sesion.get("cesta");
if (cesta == null) {
cesta = new Cesta();
}
ProductoDAO daoProducto = DAOFactory.getProductoDAO();
Producto producto = null;
try {
producto = daoProducto.obtener(id);
} catch (TiendaException e) {
e.printStackTrace();
}
int contador = 0;
Articulo articulo = new Articulo();
articulo.setProducto(producto);
articulo.setCantidad(++contador);
articulo.setImporte(contador * producto.getPrecio());
if (!cesta.getCesta().isEmpty()) {
int cantidad = 0;
for (Articulo art : cesta.getCesta()) {
if (art.getProducto().getId()
.equals(articulo.getProducto().getId())) {
cantidad = art.getCantidad() + 1;
cesta.getCesta().remove(art);
}
}
articulo.setProducto(producto);
articulo.setCantidad(cantidad);
articulo.setImporte(cantidad * producto.getPrecio());
cesta.getCesta().add(articulo);
} else {
cesta.getCesta().add(articulo);
}
System.out.println(cesta.getCesta());
sesion.put("cesta", cesta);
return null;
}
Es basicamente la simulacion de hacer click en un boton y agregar objetos a la cesta pero el parametro me llega "" a ver si alguien me pudiera ayudar muchas gracias...
- Inicie sesión o regístrese para enviar comentarios
Solucionado!!!
Buenas ya he solucionado el problema resulta que era un libreria que me estaba dando problemas muchas gracias!!!