Efectúe una doble pulsación en handlng en el lado del cliente utilizando Struts 2

Puede sacar el máximo provecho de las características de Struts 2 para realizar el manejo de la doble pulsación para los formularios basados en web.

Por qué y cuándo se efectúa esta tarea

Un problema persistente con los formularios basados en los tipos de base ha sido un comportamiento en el que, cuando el usuario envía un formulario, una segunda pulsación accidental del ratón enviará de nuevo el formulario. Puede inhabilitar este comportamiento utilizando los pasos siguientes. También puede sacar provecho de la característica de subida de archivos de Struts 2.

Hay tres formas de manejar escenarios de doble pulsación en HCL Commerce:Puede utilizar el interceptor de señales de Struts 2 para gestionar el problema de envío de varios formularios. Para utilizar esta característica, asegúrese de que los dos interceptores de señal estén definidos en el archivo de configuración de Struts. Si el archivo de configuración es una extensión del archivo de configuración predeterminado, no es necesario definirlos. Los dos interceptores de señal se definen de la manera siguiente:
<interceptor name="token" 
class="org.apache.struts2.interceptor.TokenInterceptor"/>
<interceptor name="tokenSession" 
class="org.apache.struts2.interceptor.TokenSessionStoreInterceptor"/>

Procedimiento

  1. Añada la configuración del interceptor a la acción que necesita para gestionar situaciones de doble pulsación.
    <action class="com.ibm.commerce.struts.v2.BaseAction" 
    name="Logon">
    <param name="authenticate">0:0</param>
    <param name="csrfProtected">0:0</param>
    <param name="https">0:1</param>
    <param name="parameter">com.ibm.commerce.security.commands.LogonCmd</param>
    <interceptor-ref name="token"/>
    <!--
    <interceptor-ref name="tokenSession"></interceptor-ref>
    -->
    <result name="invalid.token">/duplicateRequest2.jsp</result>
    </action>
    Nota:
    • Puede utilizar el interceptor de símbolos o tokenSession en la acción.
    • Si el interceptor de señales identifica la solicitud como duplicada, devuelve un resultado de invalid.token devoluciones. Debe tener este interceptor para añadirlo aquí si desea devolver su propio resultado. Si no se añade la señal, se utilizará un resultado global para invalid.token(/duplicateRequest.jsp).
  2. Añada el <s:token/> en el formulario, que apunte a la acción que tiene el interceptor de señales configurado.
  3. Añada <%@taglib uri="struts-tags.tld" prefix="s" %> la página que contiene ese formulario. Ahora, cuando se invoca la acción configurada, la protección de doble pulsación está habilitada y la solicitud no se enviará más de una vez.