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 et JQuery/Ajax


Sujet :

Struts 1 Java

  1. #1
    Membre confirmé
    Homme Profil pro
    Développeur Java
    Inscrit en
    Octobre 2010
    Messages
    98
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 46
    Localisation : Canada

    Informations professionnelles :
    Activité : Développeur Java
    Secteur : Communication - Médias

    Informations forums :
    Inscription : Octobre 2010
    Messages : 98
    Par défaut Struts et JQuery/Ajax
    Bonjour,

    Voilà mon souci :

    Je souhaite récupérer les valeurs contenu dans un <bean:write> pour les envoyer coté serveur et les utiliser dans ma classe action.

    Pour l'instant j'utilise un <html:link> pour déclencher mon action et je passe cette valeur dans l'url comme ceci :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
     
    <bean:define id="myBeanValue" name="microTheso" property="nameMT" />	
      	<html:link action="/listerDescripteur.do?prop='${myBeanValue}'">
      	<bean:write name="microTheso" property="nameMT"/></html:link>
    Ceci fonctionne, donc jusque là , pas de problême, à partir de cà, je souhaiterais utiliser cette valeur comme paramètre dans ma classe action.

    Tous les renseignements que j'ai eus m'oriente vers JQuery/Ajax, mais tous les tutos que j'ai trouvé ne sont pas super clair , et surtout, je n'en ai pas trouvé qui traite de ce problême.

    Quelqu'un aurait-il déjà fais ça ????

    Merci

  2. #2
    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
    Billets dans le blog
    1
    Par défaut
    A moins de n'avoir pas bien compris ta demande, il suffit de déclarer une propriété "prop" avec ses getter/setter dans l'objet ActionForm associé à ton action.
    N'oubliez pas de consulter les FAQ Java et les cours et tutoriels Java

  3. #3
    Membre confirmé
    Homme Profil pro
    Développeur Java
    Inscrit en
    Octobre 2010
    Messages
    98
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 46
    Localisation : Canada

    Informations professionnelles :
    Activité : Développeur Java
    Secteur : Communication - Médias

    Informations forums :
    Inscription : Octobre 2010
    Messages : 98
    Par défaut
    Bonjour, merci pour ta reponse,

    Aurais tu un petit exemple...
    parce que je comprend pas pourquoi il faut un setter et getter pour une variable...enfin, si je comprends pourquoi ...mais pas comment ...

    Merci .

  4. #4
    Membre éclairé Avatar de Jacobian
    Inscrit en
    Février 2008
    Messages
    425
    Détails du profil
    Informations forums :
    Inscription : Février 2008
    Messages : 425
    Par défaut
    ta pas besoin de passer prop en paramètre comme OButterlin a dit il suffit de déclarer ton objet "prop" dans ta classe action avec getter et setter dans ta page jsp le variable est reconnu automatiquement via l'attribut name="prop"

  5. #5
    Membre confirmé
    Homme Profil pro
    Développeur Java
    Inscrit en
    Octobre 2010
    Messages
    98
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 46
    Localisation : Canada

    Informations professionnelles :
    Activité : Développeur Java
    Secteur : Communication - Médias

    Informations forums :
    Inscription : Octobre 2010
    Messages : 98
    Par défaut
    ok,
    bon alors du coup, j'ai ma classe action qui ressemble a ca :

    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
     
    public class ListerDescripteurAction extends Action {
     
    	ActionForm prop;
     
    	public ActionForm getProp() {
    		return prop;
    	}
     
    	public void setProp(ActionForm prop) {
    		this.prop = prop;
    	}
     
    	public ActionForward execute(ActionMapping mapping, ActionForm form,
    			HttpServletRequest request, HttpServletResponse response) throws SQLException{
     
    	List<String> capitals = new ArrayList<String>();
            capitals.add("Paris");
            capitals.add("Londres");
     
            request.setAttribute("capitals", capitals);
     
    	return mapping.findForward("success");
     
    	}
    }
    Ensuite,je l'utilise comment dans ma fonction execute ?

    Merci

  6. #6
    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
    Billets dans le blog
    1
    Par défaut
    Comme dit plus haut, je ne suis pas sûr d'avoir compris le besoin, mais il me semble qu'il a un bean dans un scope (pas précisé dans l'exemple) et il cherche à passer la valeur à l'action (pas l'inverse).
    Le plus simple est de créer la propriété dans l'ActionForm et de laisser populate() s'occuper de charger les attributs.
    Sinon, rien n'empêche de faire un request.getParameter("prop") dans l'action.
    N'oubliez pas de consulter les FAQ Java et les cours et tutoriels Java

  7. #7
    Membre confirmé
    Homme Profil pro
    Développeur Java
    Inscrit en
    Octobre 2010
    Messages
    98
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 46
    Localisation : Canada

    Informations professionnelles :
    Activité : Développeur Java
    Secteur : Communication - Médias

    Informations forums :
    Inscription : Octobre 2010
    Messages : 98
    Par défaut
    qu'il a un bean dans un scope (pas précisé dans l'exemple) et il cherche à passer la valeur à l'action (pas l'inverse).
    C'est exactement ca....

    Bon ben je refait ma classe action dans ce sens ...et je la repost...

  8. #8
    Membre confirmé
    Homme Profil pro
    Développeur Java
    Inscrit en
    Octobre 2010
    Messages
    98
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 46
    Localisation : Canada

    Informations professionnelles :
    Activité : Développeur Java
    Secteur : Communication - Médias

    Informations forums :
    Inscription : Octobre 2010
    Messages : 98
    Par défaut
    Alors classe action :
    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
     
     
    public class ListerDescripteurAction extends Action {
    	/*
    	 * Generated Methods
    	 */
    	public ActionForward execute(ActionMapping mapping, ActionForm form,
    			HttpServletRequest request, HttpServletResponse response) throws SQLException{
     
    	RequeteHibernate req = new RequeteHibernate();
    	Descriptor descripteur = req.getDescripteur();
     
    	Vector<NodeThesoMT> thesaurus = req.getThesaurus(); //recuperation des thesaurus et Microthesaurus
    	Vector <Descriptor> descripteurList = descripteur.getNarrowerTermD();//recuperation des fils
     
    	request.setAttribute("theso", thesaurus);
    	request.setAttribute("desc", descripteurList);
     
     
    	request.getAttribute("prop");
     
    	List<String> capitals = new ArrayList<String>();
            capitals.add("Paris");
            capitals.add("Londres");
     
            // ...
     
            // information à envoyer à la JSP
            request.setAttribute("capitals", capitals);
     
     
     
    	System.out.println("ca marche");
    	System.out.println(request.getAttribute("prop"));
     
    	return mapping.findForward("terme");
     
    	}
    }

    Mais ca marche pas, request.getAttribute("prop") me renvoi null....

  9. #9
    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
    Billets dans le blog
    1
    Par défaut
    Autant pour moi, c'est request.getParameter("prop") (pas getAttribute("prop"))
    N'oubliez pas de consulter les FAQ Java et les cours et tutoriels Java

  10. #10
    Membre confirmé
    Homme Profil pro
    Développeur Java
    Inscrit en
    Octobre 2010
    Messages
    98
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 46
    Localisation : Canada

    Informations professionnelles :
    Activité : Développeur Java
    Secteur : Communication - Médias

    Informations forums :
    Inscription : Octobre 2010
    Messages : 98
    Par défaut
    Oui ,

    Déjà ca fonctionne mieux....
    Bon sinon, entre temps, je testais par la même occasion en passant par ajax...
    Mais du coup, vu que je recharge plus ma page...il ne connait pas prop...

    Connaitrais tu par hasard ajax ???

  11. #11
    Membre éclairé Avatar de Jacobian
    Inscrit en
    Février 2008
    Messages
    425
    Détails du profil
    Informations forums :
    Inscription : Février 2008
    Messages : 425
    Par défaut
    define ...scope="session"

  12. #12
    Membre confirmé
    Homme Profil pro
    Développeur Java
    Inscrit en
    Octobre 2010
    Messages
    98
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 46
    Localisation : Canada

    Informations professionnelles :
    Activité : Développeur Java
    Secteur : Communication - Médias

    Informations forums :
    Inscription : Octobre 2010
    Messages : 98
    Par défaut
    Jacobian > ?????

    je veux juste savoir si on peut faire le même système dans cette fonction avec cette url:

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
     
    var url = "http://localhost:8080/OTW3/listerDescripteur.do?action=execute";

  13. #13
    Membre éclairé Avatar de Jacobian
    Inscrit en
    Février 2008
    Messages
    425
    Détails du profil
    Informations forums :
    Inscription : Février 2008
    Messages : 425
    Par défaut
    si j'ai bien compris tu peux le fait même traitement avec ajax comme suite:

    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
     
    // appel AJAX avec Prototype d'une action Struts
    <script type="text/javascript">
    function lancer() {
      var url = "http://localhost:8080/OTW3/listerDescripteur.do?action=execute";
     
     
        // make a HTTP request to the specified URL
        new Ajax.Request(url, {
            method:'get',
            asynchronous:true,
            onSuccess: function(xhr) {
                $("RES_DIV").innerHTML = xhr.responseText;
                $("RES_DIV").style.display = "block";
            },
            onFailure: function(xhr) { alert(xhr.responseText); },
            onException: function(xhr, exception) { alert("Exception : " + xhr.responseText + "\n" + exception.message); }
        });
    }
    </script>
     
    <!-- bouton qui va déclencher la récupération des res -->
    <input type="button" value="Résultat" onclick="lancer()"/>
     
    <!-- placer cette div à l'endroit où vous souhaitez, c'est elle qui contiendra la JSP du listing des res -->
    <div id="RES_DIV" style="display:none"></div>

  14. #14
    Membre confirmé
    Homme Profil pro
    Développeur Java
    Inscrit en
    Octobre 2010
    Messages
    98
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 46
    Localisation : Canada

    Informations professionnelles :
    Activité : Développeur Java
    Secteur : Communication - Médias

    Informations forums :
    Inscription : Octobre 2010
    Messages : 98
    Par défaut
    ben j'aimerais bien utiliser ca...mais je passe comment mon parametre du fait que l'url ne change pas ????

  15. #15
    Membre éclairé Avatar de Jacobian
    Inscrit en
    Février 2008
    Messages
    425
    Détails du profil
    Informations forums :
    Inscription : Février 2008
    Messages : 425
    Par défaut
    bah tu le passe en paramètre de la méthode lancer ??

  16. #16
    Membre confirmé
    Homme Profil pro
    Développeur Java
    Inscrit en
    Octobre 2010
    Messages
    98
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 46
    Localisation : Canada

    Informations professionnelles :
    Activité : Développeur Java
    Secteur : Communication - Médias

    Informations forums :
    Inscription : Octobre 2010
    Messages : 98
    Par défaut
    heu...oui...mais comment on le récupere dans la classe action ???

  17. #17
    Membre confirmé
    Homme Profil pro
    Développeur Java
    Inscrit en
    Octobre 2010
    Messages
    98
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 46
    Localisation : Canada

    Informations professionnelles :
    Activité : Développeur Java
    Secteur : Communication - Médias

    Informations forums :
    Inscription : Octobre 2010
    Messages : 98
    Par défaut
    en fait ma classe action comportera une requete avec cette valeur en parametre....voila

  18. #18
    Membre éclairé Avatar de Jacobian
    Inscrit en
    Février 2008
    Messages
    425
    Détails du profil
    Informations forums :
    Inscription : Février 2008
    Messages : 425
    Par défaut
    pourquoi tu veux récupérer le param dans la page:
    au début de ta méthode execute récupérer la valeur de ton paramètre et ensuite tu fait ton traitement

  19. #19
    Membre éclairé Avatar de Jacobian
    Inscrit en
    Février 2008
    Messages
    425
    Détails du profil
    Informations forums :
    Inscription : Février 2008
    Messages : 425
    Par défaut
    mais toujours tu peux récupérer ton parametre en utilisant une chose comme ça:

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
     
       Map parameters = null;  
     
        public final Map getParameters() {  
                parameters=ActionContext.getContext().getParameters();  
               return parameters;  
           }  
     
        public String getParameterValue(String param){  
               Object paramObj = getParameters().get(param);  
              if(paramObj == null) return null;  
              return ((String[])paramObj)[0];  
          }

  20. #20
    Membre confirmé
    Homme Profil pro
    Développeur Java
    Inscrit en
    Octobre 2010
    Messages
    98
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 46
    Localisation : Canada

    Informations professionnelles :
    Activité : Développeur Java
    Secteur : Communication - Médias

    Informations forums :
    Inscription : Octobre 2010
    Messages : 98
    Par défaut
    Bonjouuuuuuuuur,


    pourquoi tu veux récupérer le param dans la page:
    Parce que c'est du dynamique, j'utilise un <bean:write> donc c'est pas la même a chaque fois....

    Voila un exemple de ce que je veux faire :

    Tu as des pays et des villes, tu affiche une liste de pays, et quand tu cliques sur ce pays tu affiche les villes associées...
    D'ou l'ajax...

    Sauf que là , ca à l'air compliqué pour pas grand chose, y'a pas un moyen de passer par la fonction Ajax???

    Parce que elle gère l'affichage, et sans Ajax, ca fonctionne sauf que je recharge toute la page, et avec Ajax ben je recharge que ce que je veux, mais je sais pas comment passer mon parametre...

    Breeef, je suis embêter.

+ Répondre à la discussion
Cette discussion est résolue.
Page 1 sur 2 12 DernièreDernière

Discussions similaires

  1. [JQuery] ajax avec Firefox
    Par elvan49 dans le forum jQuery
    Réponses: 2
    Dernier message: 17/12/2007, 12h21
  2. jquery ajax et IE
    Par Sourrisseau dans le forum jQuery
    Réponses: 1
    Dernier message: 01/09/2007, 05h17
  3. [JQuery] Ajax et réécriture d'url
    Par Nicolas N. dans le forum jQuery
    Réponses: 1
    Dernier message: 21/07/2007, 20h31
  4. Réponses: 1
    Dernier message: 19/07/2007, 22h19
  5. Réponses: 5
    Dernier message: 12/05/2006, 22h02

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