Double-cliquez sur handlng du côté client à l'aide de Struts 2

Vous pouvez profiter pleinement des fonctionnalités Struts 2 pour effectuer la gestion du double clic pour vos formulaires web.

Pourquoi et quand exécuter cette tâche

Un problème persistant avec les formulaires basés sur Struts estun comportement où, lorsque l'utilisateur soumet un formulaire, un deuxième clic accidentel de la souris soumettra à nouveau le formulaire. Vous pouvez désactiver ce comportement à l'aide des étapes suivante . Vous pouvez également profiter de la fonctionnalité de téléchargement de fichiers Struts 2.

Il existe trois façons de gérer les scénarios de double clic dans HCL Commerce :Vous pouvez utiliser l'intercepteur de jeton Struts 2 pour gérer le problème de soumission de formulaire multiple. Pour utiliser cette fonctionnalité, assurez-vous que les deux intercepteurs de jetons sont définis dans le fichier de configuration Struts. Si le fichier de configuration est une extension du fichier de configuration par défaut, vous n'avez pas besoin de les définir. Les deux intercepteurs de jetons sont définis comme suit :
<interceptor name="token" 
class="org.apache.struts2.interceptor.TokenInterceptor"/>
<interceptor name="tokenSession" 
class="org.apache.struts2.interceptor.TokenSessionStoreInterceptor"/>

Procédure

  1. Ajoutez la configuration intercepteur dans l'action qui doit gérer les situations de double clic.
    <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>
    Remarque :
    • Vous pouvez utiliser un intercepteur de jeton ou de tokenSession dans l'action.
    • Si l'intercepteur de jetons identifie la demande comme dupliquée, le résultat de invalid.token est retourné. Vous devez avoir ce jeton pour l'ajouter ici si vous souhaitez retourner votre propre résultat. Si le jeton n'est pas ajouté, un résultat global pour invalid.token(/duplicateRequest.jsp)sera utilisé.
  2. Ajoutez <s:token/> dans le formulaire, pointant vers l'action qui a l'intercepteur de jeton configuré.
  3. Ajoutez <%@taglib uri="struts-tags.tld" prefix="s" %> dans la page qui contient ce formulaire. Maintenant, lorsque l'action configurée est appelée, la protection du double clic est activée et la requête ne sera pas envoyée plus d'une fois.