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 :

Exécution d'Action et fermeture de popup via un lien


Sujet :

Struts 1 Java

  1. #1
    Membre confirmé
    Profil pro
    Inscrit en
    Juin 2007
    Messages
    154
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juin 2007
    Messages : 154
    Par défaut Exécution d'Action et fermeture de popup via un lien
    Bonjour,

    Après avoir généré une fenêtre popup, qui comporte un bouton Valider et un bouton Annuler.
    Je souhaite qu'a l'appui du bouton Valider, la méthode valider(), de ma classe action entre en jeu, pour ce faire j'ai entrer dans ma page jsp le code suivant :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
     
    <a href="xclass?typeAction=valider&val1=<c:out value="${valeur1}" />&val2=<c:out value="${valeur2}" />" onclick="window.close()"> 
    Confirmer 
    </a>
    Malheureusement, la méthode valider() n'est jamais appelée. Quelqu'un pourrait il me donner un coup de main a ce sujet.

    Merci par avance.

  2. #2
    Expert confirmé

    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
    Par défaut
    Dans l'attribut href, il faut ajouter le contexte de l'application.
    Donc, soit tu le codes en dur, soit tu utilises la méthode getContextPath() de HttpServletRequest.

    Sinon, si la version du serveur d'application que tu utilises est compatible J2EE 1.4, ça vaudrait le coup de modifier le web.xml en conséquence afin de pouvoir directement coder des EL à la place des tags c:out :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    <a href="<%=request.getContextPath()+"/xclass?typeAction=valider&val1=${valeur1}&val2=${valeur2}"%>"  onclick="window.close()">
    Autre remarque : tu parles d'Action. Est-ce une Action Struts ?
    Si c'est bien le cas, tu devrais plutôt utiliser le tag html:link avec l'attribut action car il ajoute automatiquement le contexte de l'application au path de l'Action.

  3. #3
    Membre confirmé
    Profil pro
    Inscrit en
    Juin 2007
    Messages
    154
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juin 2007
    Messages : 154
    Par défaut
    Citation Envoyé par c_nvy Voir le message
    Dans l'attribut href, il faut ajouter le contexte de l'application.
    Donc, soit tu le codes en dur, soit tu utilises la méthode getContextPath() de HttpServletRequest.

    Sinon, si la version du serveur d'application que tu utilises est compatible J2EE 1.4, ça vaudrait le coup de modifier le web.xml en conséquence afin de pouvoir directement coder des EL à la place des tags c:out :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    <a href="<%=request.getContextPath()+"/xclass?typeAction=valider&val1=${valeur1}&val2=${valeur2}"%>"  onclick="window.close()">
    Autre remarque : tu parles d'Action. Est-ce une Action Struts ?
    Si c'est bien le cas, tu devrais plutôt utiliser le tag html:link avec l'attribut action car il ajoute automatiquement le contexte de l'application au path de l'Action.
    Merci pour ta réponse, en effet j'utilise Struts. Tu m'as parlé du tag : html:link, peux tu stp m'en dire un peu plus sur ce tag par rapport a mon problème. J'avoue que je ne connais pas du tout ce tag.

    Merci encore.

  4. #4
    Expert confirmé

    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
    Par défaut
    Le tag Struts html:link génère tout simplement une balise html <a href=...> en ajoutant automatiquement le contexte de l'application dans l'attribut href.

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    <html:link action="xclass?typeAction=valider&val1=${valeur1}&val2=${valeur2}" onclick="window.close()">
    Confirmer 
    </html:link>

  5. #5
    Membre confirmé
    Profil pro
    Inscrit en
    Juin 2007
    Messages
    154
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juin 2007
    Messages : 154
    Par défaut
    Citation Envoyé par c_nvy Voir le message
    Le tag Struts html:link génère tout simplement une balise html <a href=...> en ajoutant automatiquement le contexte de l'application dans l'attribut href.

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    <html:link action="xclass?typeAction=valider&val1=${valeur1}&val2=${valeur2}" onclick="window.close()">
    Confirmer 
    </html:link>
    Je viens d'essayé avec le tag html:link, mais cela ne fonctionne toujours pas.
    J'y perds mon latin

  6. #6
    Expert confirmé

    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
    Par défaut
    Et si tu testes après avoir enlever l'attribut onclick, la méthode est-elle appelée ?

    Sinon, peux-tu montrer le code html généré de la page jsp ?

  7. #7
    Membre confirmé
    Profil pro
    Inscrit en
    Juin 2007
    Messages
    154
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juin 2007
    Messages : 154
    Par défaut
    Citation Envoyé par c_nvy Voir le message
    Et si tu testes après avoir enlever l'attribut onclick, la méthode est-elle appelée ?

    Sinon, peux-tu montrer le code html généré de la page jsp ?
    Bonjour,

    En effet, en retirant l'attribut onclick, cela fonctionne, mais par contre la fenetre popup reste toujours en place. Existe t'il un moyen de la retirer ?

    Thank's.

  8. #8
    Expert confirmé

    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
    Par défaut
    Essaie plutôt de soumettre l'Action via une fonction Javascript :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    <html:link href="javascript:void(0)" onclick="taFonction('valider','${valeur1}','${valeur2}');">
    Confirmer 
    </html:link>
    et dans la fonction Javascript :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    function taFonction(typeAction,val1,val2)
    {
       window.opener.location.href="<%=request.getContextPath()%>/xclass.do?typeAction="+typeAction+"&val1="+val1+"&val2="+val2;
       window.close();
    }

  9. #9
    Membre confirmé
    Profil pro
    Inscrit en
    Juin 2007
    Messages
    154
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juin 2007
    Messages : 154
    Par défaut
    Citation Envoyé par c_nvy Voir le message
    Essaie plutôt de soumettre l'Action via une fonction Javascript :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    <html:link href="javascript:void(0)" onclick="taFonction('valider','${valeur1}','${valeur2}');">
    Confirmer 
    </html:link>
    et dans la fonction Javascript :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    function taFonction(typeAction,val1,val2)
    {
       window.opener.location.href="<%=request.getContextPath()%>/xclass.do?typeAction="+typeAction+"&val1="+val1+"&val2="+val2;
       window.close();
    }
    Mille merci pour ton aide.
    Cela fonctionne maintenant comme je le désirais. J'ai uniquement remplacer :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    <html:link href="javascript:void(0)" onclick="taFonction('valider','${valeur1}','${valeur2}');">
    par :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    <a href="javascript:void(0)" onclick="fermeture(<c:out value="${valeur1}" />,<c:out value="${valeur2}" />);">
    Car dans le précedent code j'obtenais dans mon lien le texte : "${valeur1}..."
    De plus, apparement avec le tag : html:link dans l'attribut href, je ne pouvais utiliser le tag : <c:out value=..../>

    A part cela, tout fonctionne a merveille.

    Merci encore.

  10. #10
    Expert confirmé

    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
    Par défaut
    Ma solution avec les EL ne fonctionne qu'en J2EE 1.4 (Servlet 2.4/JSP 2.0) ou plus.
    Comme tu me dis que les EL ne sont pas interprétées, cela signifie que tu es dans une version inférieure.

    Donc, dans ce cas, tu n'as effectivement pas d'autres solutions que d'utiliser la balise a à la place du tag html:link.

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

Discussions similaires

  1. envoie info sur popup via un lien..
    Par flo456 dans le forum Général JavaScript
    Réponses: 7
    Dernier message: 17/01/2006, 11h13
  2. Exécuter une action à la fermeture d'une fenêtre
    Par wwave dans le forum Servlets/JSP
    Réponses: 12
    Dernier message: 28/07/2005, 15h15
  3. [Win 2000] exécuter tâche a la fermeture
    Par arcane dans le forum Windows Serveur
    Réponses: 4
    Dernier message: 07/01/2005, 00h21
  4. [fermeture de popup]
    Par viny dans le forum Général JavaScript
    Réponses: 3
    Dernier message: 27/11/2004, 18h31
  5. Exécutable gérant une base de données distante via internet
    Par paulgiot dans le forum Bases de données
    Réponses: 4
    Dernier message: 15/07/2004, 14h00

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