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 :
- Gestion côté client à l'aide de JavaScript. Voir Gestion du double-clic côté client avec JavaScript.
- Gestion côté serveur par MultiClickRequestHandler. Voir Configuration de la manipulation en double-clic.
- Côté client et serveur à l'aide de Struts 2.
<interceptor name="token"
class="org.apache.struts2.interceptor.TokenInterceptor"/>
<interceptor name="tokenSession"
class="org.apache.struts2.interceptor.TokenSessionStoreInterceptor"/>Procédure
-
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.tokenest 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 pourinvalid.token(/duplicateRequest.jsp)sera utilisé.
-
Ajoutez
<s:token/>dans le formulaire, pointant vers l'action qui a l'intercepteur de jeton configuré. -
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.