AnsweredAssumed Answered

Problema con Webservices

Question asked by cybermakoki on Oct 13, 2010
Latest reply on Oct 18, 2010 by cybermakoki
Hola a todos!

Me he metido ahora a trabajar con webservices y tengo varios problemillas…

El que más quebraderos de cabeza me está dando es el doble submit en las jsps.

Os cuento un poco…

Tengo una jsp que muestra contenido, muy parecida a la browse.jsp, por cada fila tengo varias acciones, entre ellas la de borrar, que borra el nodo y ya está…

El problema es, que cuando ejecuto esa acción, si inmediatamente después, hago un F5, se me vuelve a ejecutar!!

Ya se que el propio navegador envia de nuevo los datos del formulario y que te avisa de esto, pero en el webClient de alfresco tengo hecho lo mismo, y esto no ocurre… os pego la jsp y el metodo al que llamo por si se os ocurre algo…

jsp:

<h:form acceptcharset="UTF-8" id="form" >
   
      <h:inputHidden value="#{MyBean.tam}" id="tam"/>
      <h:dataTable id="contentList" value="#{MyBean.content}" binding="#{MyBean.dataTable}"  var="r" width="100%" styleClass="recordSet"                         
                           rendered="#{not empty MyBean.content}">
         
         <h:column>
            <f:facet name="header">
               <h:selectBooleanCheckbox id="checkCabecera" onclick="javascript:seleccionar(this.name);"/>         
            </f:facet>
             <h:selectBooleanCheckbox  id="checkboxes" value="#{MyBean.selectedIds[r.id]}" />
                                           
         </h:column>
         
         <h:column>
            <f:facet name="header">
               <h:outputText value="#{msg.observaciones}"/>                                 
            </f:facet>
            <h:outputText value="#{r.observaciones}" />
         </h:column>   

      
         <h:column>
            <f:facet name="header">
               <h:outputText value="#{msg.acciones}"/>                                 
            </f:facet>                                                      
            
            <h:commandButton image="../images/delete.gif" onclick="enviar();" actionListener="#{MyBean.borrarPedido}" />
                                          
         </h:column>                        
      </h:dataTable>
            
</h:form>      

El método del MyBean.java:

   public void borrarPedido(ActionEvent event){
         
         
         HttpServletRequest req = (HttpServletRequest)FacesContext.getCurrentInstance().getExternalContext().getRequest();
         AuthenticationDetails details = (AuthenticationDetails)req.getSession().getAttribute("authenticationDetails");
         RepositoryServiceSoapBindingStub repositoryService = WebServiceClient.getRepositoryService(details);
         
         Pedido pedido = (Pedido)getDataTable().getRowData();
         
         Reference nodeRef = new Reference(STORE, pedido.getId(), pedido.getPath());
         Predicate predicate = new Predicate(new Reference[]{nodeRef}, null, null);      
         CMLDelete delete = new CMLDelete(predicate);
         CML cml = new CML();
         cml.setDelete(new CMLDelete[]{delete});
         try {
            repositoryService.update(cml);
         } catch (RepositoryFault e) {
            // TODO Auto-generated catch block
            e.printStackTrace();
         } catch (RemoteException e) {
            // TODO Auto-generated catch block
            e.printStackTrace();
         }   
              // invoke some business logic here
          
      }

y el faces-config.xml

<faces-config>

   <application>
      <locale-config> 
            <default-locale>es_ES</default-locale> 
            <supported-locale>es_ES</supported-locale> 
       </locale-config>
      <message-bundle>messages</message-bundle>
      <!–  <message-bundle>errors</message-bundle>–>
    </application> 
      
   <managed-bean>
      <managed-bean-name>LoginBean</managed-bean-name>
      <managed-bean-class>beans.LoginBean</managed-bean-class>
      <managed-bean-scope>session</managed-bean-scope>
   </managed-bean>
   
   <managed-bean>
      <managed-bean-name>MyBean</managed-bean-name>
      <managed-bean-class>beans.ContentBean</managed-bean-class>
      <managed-bean-scope>session</managed-bean-scope>                  
   </managed-bean>
   

   <navigation-rule>
      <from-view-id>/jsp/login.jsp</from-view-id>         
      <navigation-case>
         <from-outcome>fail</from-outcome>
         <to-view-id>/jsp/login.jsp</to-view-id>
         <redirect />         
      </navigation-case>
            
      <navigation-case>
         <from-outcome>logout</from-outcome>
         <to-view-id>/jsp/login.jsp</to-view-id>
         <redirect />         
      </navigation-case>
      
      <navigation-case>      
           <from-outcome>success</from-outcome>
           <to-view-id>/jsp/tareas.jsp</to-view-id>
         </navigation-case>
   </navigation-rule>
 




</faces-config>

Gracias de antemano :)

Outcomes