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 1 Java Discussion :

[Struts-Layout] Données d'un form dans SuggestAction


Sujet :

Struts 1 Java

  1. #1
    Membre à l'essai
    Profil pro
    Inscrit en
    Juin 2008
    Messages
    17
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juin 2008
    Messages : 17
    Points : 13
    Points
    13
    Par défaut [Struts-Layout] Données d'un form dans SuggestAction
    Bonjour à tous,
    J'ai un formulaire avec une liste déroulante et un champ texte.
    Je dois un faire un champ de suggestion sur le champ texte pr rapport à ce que l'on choisi dans la liste déroulante.
    Pour cela j'utilise une SuggestAction, j'aimerais savoir si il est possible de transferer les données du formulaire pr un form dans le suggest.
    Voici le début du code de mon action:
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    public class getSuggestionAction extends SuggestAction {
     
    	public Collection getSuggestionList(ActionForm form, HttpServletRequest in_request, String in_word) {
    le soucis c'est que getSuggestionList n'accepte pas le ActionForm form et je voudrais savoir si il est possible de trouver une autre instruction afin de connaitre ce qui est choisi dans ma liste déroulante
    Merci de votre aide

  2. #2
    Expert éminent

    Femme Profil pro
    Inscrit en
    Juillet 2005
    Messages
    5 793
    Détails du profil
    Informations personnelles :
    Sexe : Femme
    Localisation : France

    Informations forums :
    Inscription : Juillet 2005
    Messages : 5 793
    Points : 7 778
    Points
    7 778
    Par défaut
    Dans le tutoriel du tag suggest sur le site de Struts-Layout ici, il est écrit :
    Note that you can also specify the 'property' attribute in order to bound this field to a property of an action form.
    Il est donc possible d'alimenter la propriété du tag suggest à partir de la valeur de l'élément sélecté dans la liste déroulante.

  3. #3
    Membre à l'essai
    Profil pro
    Inscrit en
    Juin 2008
    Messages
    17
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juin 2008
    Messages : 17
    Points : 13
    Points
    13
    Par défaut
    Je dois mettre le nom de mon form dans le property de mon suggest ?

  4. #4
    Modérateur
    Avatar de OButterlin
    Homme Profil pro
    Inscrit en
    Novembre 2006
    Messages
    7 313
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations forums :
    Inscription : Novembre 2006
    Messages : 7 313
    Points : 9 529
    Points
    9 529
    Billets dans le blog
    1
    Par défaut
    Tu dois utiliser l'attribut all="true" dans le paramétrage de <layout:suggest> et faire des request.getParameter("...") dans ton action.

    A+

  5. #5
    Membre actif Avatar de Tanebisse
    Homme Profil pro
    Ingénieur développement logiciels
    Inscrit en
    Février 2007
    Messages
    449
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 45
    Localisation : France

    Informations professionnelles :
    Activité : Ingénieur développement logiciels
    Secteur : Industrie

    Informations forums :
    Inscription : Février 2007
    Messages : 449
    Points : 260
    Points
    260
    Par défaut
    Bonjour,
    Je viens de voir la conversation et ça m'intéresse, en cherchant un peu sur la Net, je vois qu'il faut hériter de la classe MultipleSuggestAction et implémenter la méthode suivante :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    Collection getMultipleSuggestionList(HttpServletRequest arg0, Map arg1)
    La doc est vide en ce qui concerne la description des paramètres. Le premier je vois bien mais le second correspond à quoi ? Est-ce une Map ou les clés sont chacun des champs du formulaire ? Doit-on utiliser un <layout:form> avec des <layout:text> obligatoirement ou peut-on l'utiliser dans un <html:form> avec <html:text> standard ?

    Merci

  6. #6
    Expert éminent

    Femme Profil pro
    Inscrit en
    Juillet 2005
    Messages
    5 793
    Détails du profil
    Informations personnelles :
    Sexe : Femme
    Localisation : France

    Informations forums :
    Inscription : Juillet 2005
    Messages : 5 793
    Points : 7 778
    Points
    7 778
    Par défaut
    Apparemment, c'est bien ça : les clés de la Map correspondent à chaque champ du formulaire.

    Je pense que tu dois pouvoir utiliser les tags html:form et html:text.

  7. #7
    Modérateur
    Avatar de OButterlin
    Homme Profil pro
    Inscrit en
    Novembre 2006
    Messages
    7 313
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations forums :
    Inscription : Novembre 2006
    Messages : 7 313
    Points : 9 529
    Points
    9 529
    Billets dans le blog
    1
    Par défaut
    Pour l'avoir utilisé à plusieurs reprises, il n'est pas nécessaire (contrairement à ce qui figure dans la doc) d'implémenter MultipleSuggestAction, SuggestAction fonctionnera très bien.
    Par contre, il faudra faire les request.getParameter("nomDuChamp") soit même.
    Si tu regardes le javascript suggest.js et tout particulièrement la méthode "updateSuggestionList(...)", tu verras qu'il génère la liste des paramètres en relation avec les champs du formulaire, qu'ils soient disabled ou non d'ailleurs !

    A+

  8. #8
    Expert éminent

    Femme Profil pro
    Inscrit en
    Juillet 2005
    Messages
    5 793
    Détails du profil
    Informations personnelles :
    Sexe : Femme
    Localisation : France

    Informations forums :
    Inscription : Juillet 2005
    Messages : 5 793
    Points : 7 778
    Points
    7 778
    Par défaut
    Citation Envoyé par OButterlin Voir le message
    Pour l'avoir utilisé à plusieurs reprises, il n'est pas nécessaire (contrairement à ce qui figure dans la doc) d'implémenter MultipleSuggestAction, SuggestAction fonctionnera très bien.
    Par contre, il faudra faire les request.getParameter("nomDuChamp") soit même.
    Mais pourquoi ne pas l'utiliser puisque ça existe ?
    As-tu eu des soucis avec la MultipleSuggestAction ?

  9. #9
    Membre actif Avatar de Tanebisse
    Homme Profil pro
    Ingénieur développement logiciels
    Inscrit en
    Février 2007
    Messages
    449
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 45
    Localisation : France

    Informations professionnelles :
    Activité : Ingénieur développement logiciels
    Secteur : Industrie

    Informations forums :
    Inscription : Février 2007
    Messages : 449
    Points : 260
    Points
    260
    Par défaut
    OK merci pour les infos.

  10. #10
    Modérateur
    Avatar de OButterlin
    Homme Profil pro
    Inscrit en
    Novembre 2006
    Messages
    7 313
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations forums :
    Inscription : Novembre 2006
    Messages : 7 313
    Points : 9 529
    Points
    9 529
    Billets dans le blog
    1
    Par défaut
    Citation Envoyé par c_nvy Voir le message
    Mais pourquoi ne pas l'utiliser puisque ça existe ?
    Bien d'accord avec toi, c'est juste que ce n'est pas obligatoire... alors que la doc le sous-entend...

    A+

  11. #11
    Expert éminent

    Femme Profil pro
    Inscrit en
    Juillet 2005
    Messages
    5 793
    Détails du profil
    Informations personnelles :
    Sexe : Femme
    Localisation : France

    Informations forums :
    Inscription : Juillet 2005
    Messages : 5 793
    Points : 7 778
    Points
    7 778
    Par défaut
    Citation Envoyé par OButterlin Voir le message
    Bien d'accord avec toi, c'est juste que ce n'est pas obligatoire... alors que la doc le sous-entend...
    Ok. Je pensais que tu avais eu des problèmes pour l'utiliser.

  12. #12
    Membre à l'essai
    Profil pro
    Inscrit en
    Juin 2008
    Messages
    17
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juin 2008
    Messages : 17
    Points : 13
    Points
    13
    Par défaut
    Donc d'après Obutterlin si je n'utilise qu'un SuggestAction pour récupérer la valeur de la liste déroulante je dois juste faire un :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    request.getParameter("property de ma liste déroulante");
    .

    Mais pour le MultipleSuggestAction comment recuperer la valeur du Map correspondant à ma liste déroulante ?

  13. #13
    Expert éminent

    Femme Profil pro
    Inscrit en
    Juillet 2005
    Messages
    5 793
    Détails du profil
    Informations personnelles :
    Sexe : Femme
    Localisation : France

    Informations forums :
    Inscription : Juillet 2005
    Messages : 5 793
    Points : 7 778
    Points
    7 778
    Par défaut
    Comme ceci :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    String elementSelecte=(String) map.get("property de ma liste déroulante") ;

  14. #14
    Membre à l'essai
    Profil pro
    Inscrit en
    Juin 2008
    Messages
    17
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juin 2008
    Messages : 17
    Points : 13
    Points
    13
    Par défaut
    Merci c_nvy Sa fonctionne je récupère la valeur selectionnée dans la liste déroulante.
    Mais j'ai encore une autre erreur mais cela doit venir de ma requete.
    Voila ce qu'il m'affiche:

    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
    java.lang.NullPointerException
     
    	com.manitou.pad.dao.MachineDao.getSuggest(MachineDao.java:833)
     
    	com.manitou.pad.service.MachineManager.getSuggest(MachineManager.java:1359)
     
    	com.manitou.pad.web.action.SuggestionNumFabricAction.getMultipleSuggestionList(SuggestionNumFabricAction
     
    .java:35)
     
    	fr.improve.struts.taglib.layout.suggest.MultipleSuggestAction.getSuggestionList(MultipleSuggestAction
     
    .java:29)
     
    	fr.improve.struts.taglib.layout.suggest.SuggestAction.getXMLSuggestionList(SuggestAction.java:36)
     
    	fr.improve.struts.taglib.layout.suggest.SuggestAction.execute(SuggestAction.java:26)
     
    	org.apache.struts.chain.commands.servlet.ExecuteAction.execute(ExecuteAction.java:58)
     
    	org.apache.struts.chain.commands.AbstractExecuteAction.execute(AbstractExecuteAction.java:67)
     
    	org.apache.struts.chain.commands.ActionCommandBase.execute(ActionCommandBase.java:51)
     
    	org.apache.commons.chain.impl.ChainBase.execute(ChainBase.java:190)
     
    	org.apache.commons.chain.generic.LookupCommand.execute(LookupCommand.java:304)
     
    	org.apache.commons.chain.impl.ChainBase.execute(ChainBase.java:190)
     
    	org.apache.struts.chain.ComposableRequestProcessor.process(ComposableRequestProcessor.java:283)
     
    	org.apache.struts.action.ActionServlet.process(ActionServlet.java:1913)
     
    	org.apache.struts.action.ActionServlet.doPost(ActionServlet.java:462)
     
    	javax.servlet.http.HttpServlet.service(HttpServlet.java:710)
     
    	javax.servlet.http.HttpServlet.service(HttpServlet.java:803)
    Aurais tu une idée?

  15. #15
    Modérateur
    Avatar de OButterlin
    Homme Profil pro
    Inscrit en
    Novembre 2006
    Messages
    7 313
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations forums :
    Inscription : Novembre 2006
    Messages : 7 313
    Points : 9 529
    Points
    9 529
    Billets dans le blog
    1
    Par défaut
    L'idée c'est que tu as une erreur "NullPointerException" à la ligne 833 dans ta classe MachineDao
    (dans la méthode getSuggest)

    Peux-tu montrer le code en question ?

    A+

  16. #16
    Membre à l'essai
    Profil pro
    Inscrit en
    Juin 2008
    Messages
    17
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juin 2008
    Messages : 17
    Points : 13
    Points
    13
    Par défaut
    C'est bon c'est réglé.
    Il avait un soucis car je n'avais pas mis arrayList =new ArrayList(); donc il renvoyait une erreur nulle.
    Par contre j'ai l'impression qu'avec le MultipleSuggestAction la liste s'affiche sur le focus et non plus quand on commence a saisir au clavier.

  17. #17
    Modérateur
    Avatar de OButterlin
    Homme Profil pro
    Inscrit en
    Novembre 2006
    Messages
    7 313
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations forums :
    Inscription : Novembre 2006
    Messages : 7 313
    Points : 9 529
    Points
    9 529
    Billets dans le blog
    1
    Par défaut
    Ça ne vient pas de là, c'est le fonctionnement par défaut de la suggestionList.
    (C'est le javascript que déclenche l'appel)

    A+

  18. #18
    Membre à l'essai
    Profil pro
    Inscrit en
    Juin 2008
    Messages
    17
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juin 2008
    Messages : 17
    Points : 13
    Points
    13
    Par défaut
    Probleme resolu.
    Cela venait de mon action car il ne rentrait pas dans:

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    if (in_word!=null && in_word.length()>0){
    			Iterator iter = resultat.iterator();
     
    			while(iter.hasNext()){
    				String currentWord =(String)iter.next();
     
    				if(currentWord.toLowerCase().startsWith(in_word.toLowerCase())){
    					suggestions.add(currentWord);
    				}
    			}
    		}
    On ne pouvait pas rentré dans le If.
    Merci a vous pour votre aide

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

Discussions similaires

  1. Réponses: 10
    Dernier message: 26/05/2008, 16h10
  2. Réponses: 2
    Dernier message: 18/04/2008, 10h18
  3. [Struts-Layout] sauvegarde d'un form dynamique
    Par benneb dans le forum Struts 1
    Réponses: 2
    Dernier message: 27/01/2008, 18h49
  4. [débutant][Struts-Layout] titre d'une form
    Par mimil77210 dans le forum Struts 1
    Réponses: 3
    Dernier message: 19/02/2007, 14h46
  5. [Struts layout] comment faire un ascenseur dans un tableau
    Par chouchou93 dans le forum Struts 1
    Réponses: 4
    Dernier message: 21/02/2006, 09h08

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