IdentifiantMot de passe
Loading...
Mot de passe oublié ?Je m'inscris ! (gratuit)
Navigation

Inscrivez-vous gratuitement
pour pouvoir participer, suivre les réponses en temps réel, voter pour les messages, poser vos propres questions et recevoir la newsletter

Struts 2 Java Discussion :

Plusieurs boutons dans un form et ie 6/7.


Sujet :

Struts 2 Java

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre confirmé
    Profil pro
    Inscrit en
    Juillet 2007
    Messages
    129
    Détails du profil
    Informations personnelles :
    Localisation : France, Nord (Nord Pas de Calais)

    Informations forums :
    Inscription : Juillet 2007
    Messages : 129
    Par défaut Plusieurs boutons dans un form et ie 6/7.
    Bonjour,

    Je suis aujourd'hui face à un problème assez bloquant pour moi puisque mon application dois tourner sur IE6/7 et FF.

    Voici mon problème : J'ai en faite un formulaire contenant deux boutons, l'un vidant les champs du formulaire (raz) et l'autre sauvegardant les données du formulaire (créer).
    Seulement, sous IE, seul une action est prise en compte. Ce qui est drôle, c'est que peu importe le bouton sur lequel je clic, ce sera toujours la même action (et donc méthode de ma classe Action) qui sera appelée.
    Quand les deux boutons sont présents et que je clic => méthode Raz
    Si j'enlève le bouton "raz", ma méthode créer est bien appelé, ce qui me laisse penser qu'IE ne gère qu'une seule action dans un formulaire.

    L'application est en thème "css_xhtml"

    Voici le code, si cela peux vous eclairer :

    Ecran utilisateur.jsp
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    21
    <s:div cssClass="blocCaracteristique" id="ajoutDeComposant">
    	<s:div cssClass="nom"><s:text name="stitle_utilisateur_create"/></s:div>
    	 <s:actionerror cssClass="actionError" />
    	<s:form action="user" method="POST" id="form" >
             <span class="form_label"><s:text name="lbl_utilisateur_login"/></span> 
         	 <s:textfield name="login" cssClass="taille200" />
             <span class="form_label"><s:text name="lbl_utilisateur_password"/></span> 
             <s:textfield name="password" cssClass="taille200" />
             <span class="form_label"><s:text name="lbl_utilisateur_mail"/></span> 
             <s:textfield name="mail" cssClass="taille200" />
            <s:actionmessage cssClass="actionMessage"/>
             <s:div cssClass="right">
            <span class="action"><s:submit  type="button" method="save"><s:param name="value"><s:text name="btn_create"/></s:param></s:submit></span>
    		</s:div>
    		  <s:div cssClass="right">
    		 <span class="action"><s:submit type="button" method="raz" ><s:param name="value"><s:text name="btn_raz"/></s:param></s:submit></span>
    		</s:div>
     
    	</s:form>
    		</s:div>
    		  <br/>
    Classe utilisateurAction.java
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    21
    22
    23
    24
    25
    26
    27
    28
    29
    30
    31
    32
    33
    34
    35
    36
    37
    38
    39
    40
    41
    42
    43
    44
    45
    46
    47
    48
    49
    50
    51
    public class UtilisateurAction extends ActionSupport {
     
     
    	private UtilisateurService service;
    	private boolean erreur = false;
    	private String login;
    	private String password;
    	private String mail;
     
    ...
     
    	public String save(){
    		try {
    			if(login.equals("")){
    				erreur = true;
    				addActionError("Saisie du login obligatoire ");
    			}
    			if(password.equals("")){
    				erreur = true;
    				addActionError("Saisie du mot de passe obligatoire ");
    			}else if(password.length() < 6){
    				erreur = true;
    				addActionError("Le mot de passe doit contenir 6 caractères minimum ");
    			}
     
    			if(!erreur){
    				service.createUser(login, password,"1");
    				addActionMessage("Utilisateur créé avec succès !");
     
    				return SUCCESS;
    			}
     
     
    		} catch (Exception e) {
     
    			e.printStackTrace();
    		}
    		return SUCCESS;
     
    	}
     
    	public String raz(){
    		System.out.print("RAZ");
    		setLogin("");
    		setPassword("");
    		setMail("");
     
    		return SUCCESS;
    	}
     
    ...
    actions.xml
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
     
    		...
     
          	<action name="user" class="userAction" >
        		<result  name="success">/pages/Accueil.jsp</result>
    		</action>
    ...
    Merci d'avance pour votre aide !

  2. #2
    Membre éprouvé
    Profil pro
    Inscrit en
    Octobre 2008
    Messages
    111
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Octobre 2008
    Messages : 111
    Par défaut
    Slt,
    Effectivement il me semble que IE gère qu'une action par formulaire.
    Essaies ça :
    1: Supprimer l'attribut action dans
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    <s:form action="user" method="POST" id="form" >
    2: Supprimer l'attribut type dans tes deux boutons submit
    3: Ajouter un attribut action dans tes deux boutons.

    Par ailleur,
    Struts2 propose une méthode assez simpliste utilisant un fichier xml, pour vérifier la saisie et le contrôle des differents champs d'un formulaire.
    Cela t'évite de faire un controle dans ton action comme tu l'as fait ici :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    if(login.equals("")){
    				erreur = true;
    				addActionError("Saisie du login obligatoire ");
    			}
    			if(password.equals("")){
    				erreur = true;
    				addActionError("Saisie du mot de passe obligatoire ");
    			}else if(password.length() < 6){
    				erreur = true;
    				addActionError("Le mot de passe doit contenir 6 caractères minimum ");
    			}

  3. #3
    Membre confirmé
    Profil pro
    Inscrit en
    Juillet 2007
    Messages
    129
    Détails du profil
    Informations personnelles :
    Localisation : France, Nord (Nord Pas de Calais)

    Informations forums :
    Inscription : Juillet 2007
    Messages : 129
    Par défaut
    Merci pour la réponse.

    Je vais tester ça !

    Pour la validation, j'étais en faite parti à la base sur les validations par annotations mais j'ai rencontré quelques problèmes (et mal géré sous ie), je me suis donc retranché sur ce système.
    Je vais voir pour la validation par fichier xml ... ce qui me dérange c'est juste le nombre important de fichiers de validation que j'aurais à la fin du développement de mon application !

  4. #4
    Membre confirmé
    Inscrit en
    Juillet 2005
    Messages
    94
    Détails du profil
    Informations forums :
    Inscription : Juillet 2005
    Messages : 94
    Par défaut
    Bonjour,
    je me permet d'intervenir dans la conversation car je rencontre exactement le même problème, c'est à dire que sous ie6 mes actions ne sont pas prises en compte, c'est toujours l'action par défaut qui est lancée.

    J'ai donc essayé la proposition de saziley, mais ça ne change rien, et toi de ton coté M€lK!oR ça donne quoi ?

    Par contre moi c'est relativement urgent, donc je suis prêt à prendre toute les solutions(propres et non propres) pour pouvoir lancer différentes actions à partir d'un même formulaire et que ça marche sous ie6.

    Ce qui m'intrigue c'est qu'il y a très peu de référence à ce problème sur internet, ie6 serait t-il mort et enterré pour struts2....

  5. #5
    Membre confirmé
    Profil pro
    Inscrit en
    Juillet 2007
    Messages
    129
    Détails du profil
    Informations personnelles :
    Localisation : France, Nord (Nord Pas de Calais)

    Informations forums :
    Inscription : Juillet 2007
    Messages : 129
    Par défaut
    J'ai testé cette solution et malheureusement cela ne donne rien. Je ne suis même pas parvenu à faire fonctionner les boutons.

    Je garde un œil sur ce poste, au cas ou tu trouverais une solution lolo. Tu peux jeter un oeil sur le projet showcase fourni par struts 2. Il contourne le problème en utilisant un bouton et un lien.

    Tiens moi au courant.

  6. #6
    Membre confirmé
    Inscrit en
    Juillet 2005
    Messages
    94
    Détails du profil
    Informations forums :
    Inscription : Juillet 2005
    Messages : 94
    Par défaut
    Je viens de parcourir les exemples showcase, cependant je n'ai pas trouvé des boutons + liens pour valider un formulaire...

    Tu me montrer un exemple ?

    Car en plus de faire une action il faut que ça submit le formulaire...

+ Répondre à la discussion
Cette discussion est résolue.

Discussions similaires

  1. Réponses: 2
    Dernier message: 30/09/2012, 21h10
  2. plusieurs boutons dans une meme form
    Par toutou2000 dans le forum Struts 1
    Réponses: 6
    Dernier message: 20/08/2008, 12h20
  3. Réponses: 12
    Dernier message: 30/03/2006, 20h55
  4. [MySQL] plusieurs bouton dans 1 form
    Par vincedjs dans le forum PHP & Base de données
    Réponses: 5
    Dernier message: 16/02/2006, 09h40
  5. Plusieurs boutons dans un formulaire
    Par kcizth dans le forum Balisage (X)HTML et validation W3C
    Réponses: 1
    Dernier message: 03/01/2006, 14h42

Partager

Partager
  • Envoyer la discussion sur Viadeo
  • Envoyer la discussion sur Twitter
  • Envoyer la discussion sur Google
  • Envoyer la discussion sur Facebook
  • Envoyer la discussion sur Digg
  • Envoyer la discussion sur Delicious
  • Envoyer la discussion sur MySpace
  • Envoyer la discussion sur Yahoo