13 Replies Latest reply on Mar 26, 2009 6:18 PM by Matias Santana

    Button action fires on each page refresh

    Matias  Santana Newbie

      Hi! I have a problem, when i try to fire the action of a button. The action fires each time i refresh the page.
      Anyone who has a tip?
      Thanx in advice!



      The CarritoBean:


      @Name("carrito")
      @AutoCreate
      @Scope(ScopeType.SESSION)
      @Restrict("#{identity.loggedIn}")
      
      public @Stateful class CarritoBean implements Carrito {
      
      private Double importeTotal=0.0;
           
          @DataModel
          private List<Producto> productosAComprar;
           
          public Double getImporteTotal() {
                return importeTotal;
           }
      
           public void setImporteTotal(Double importeTotal) {
                this.importeTotal = importeTotal;
           }
          
          @Remove @Destroy
          public void destroy() {}
          
          public void addProductoAComprar(){
               try {
                    Long productoId = new Long(FacesContext.getCurrentInstance().getExternalContext().getRequestParameterMap().get("producto"));
                    if(productosAComprar==null){
                         productosAComprar = new LinkedList<Producto>();
                    }
                    InitialContext ic = new InitialContext();
                    ProductosService productosService = (ProductosService)ic.lookup("SGAF-ear/ProductosServiceBean/remote");
                    Producto producto = productosService.getProductoById(productoId);
                   productosAComprar.add(producto);
                   importeTotal+=producto.getImporte();
                } catch (Exception e) {
                     e.printStackTrace();
                }
          }
          
          public void removeProductoAComprar(){
               /*productosAComprar.remove(producto);
               importeTotal=importeTotal - producto.getImporte();*/
          }
           
      }
      


      The code in the xhtml:



      <rich:column styleClass="action">
           <f:facet name="header">Acciones</f:facet>
             <s:button value="Comprar"
                     id="comprar"
                  image="#{request.contextPath}/img/fam/basket_add.png"
                  title="Comprar"
                  action="#{carrito.addProductoAComprar()}"
                  reRender="importeTotal">
                <f:param name="producto" value="#{producto.productoId}"/>
           </s:button>
       </rich:column>