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 :

probleme tag <html:link>


Sujet :

Struts 1 Java

  1. #1
    Membre averti
    Profil pro
    Inscrit en
    Avril 2007
    Messages
    18
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Avril 2007
    Messages : 18
    Par défaut probleme tag <html:link>
    Bonjour,

    J'ai placé ce tag dans une page jsp pour generer un lien pouvant m'ouvrir une page dans une autre fenetre:

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    <html:link action="/goAction.do" onclick="alert('test');window.open(this.href,'SNU', 'location=1,status=1,scrollbar=1,width=300,height=300');">TEST3</html:link>
    cela m'ouvre bien la page mais dans la meme fenetre!
    Meme en rajoutant l'attribut target="_blank", rien n'y fait!

    Quelqu'un pourrait il m'aider?

  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
    Et comme ceci ?
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    <html:link href="javascript:void(0)" onclick="window.open('goAction.do','SNU', 'location=1,status=1,scrollbar=1,width=300,height=300');">TEST3</html:link>

  3. #3
    Membre averti
    Profil pro
    Inscrit en
    Avril 2007
    Messages
    18
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Avril 2007
    Messages : 18
    Par défaut
    Citation Envoyé par c_nvy Voir le message
    Et comme ceci ?
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    <html:link href="javascript:void(0)" onclick="window.open('goAction.do','SNU', 'location=1,status=1,scrollbar=1,width=300,height=300');">TEST3</html:link>
    En affichant ça, le lien est mort.

  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
    L'Action de path goAction est exécutée à l'ouverture de la popup.
    Ce n'est pas ce que tu souhaites ?

  5. #5
    Membre averti
    Profil pro
    Inscrit en
    Avril 2007
    Messages
    18
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Avril 2007
    Messages : 18
    Par défaut
    Citation Envoyé par c_nvy Voir le message
    L'Action de path goAction est exécutée à l'ouverture de la popup.
    Ce n'est pas ce que tu souhaites ?
    Si, mais là ca ne marche pas.
    autrement dit, quand je clique sur le lien, rien ne se passe.

  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
    Ben pourtant, j'ai fait le test et pour moi ça fonctionne.

    Tu as bien mis :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    window.open('goAction.do',...

  7. #7
    Membre averti
    Profil pro
    Inscrit en
    Avril 2007
    Messages
    18
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Avril 2007
    Messages : 18
    Par défaut
    Citation Envoyé par c_nvy Voir le message
    Ben pourtant, j'ai fait le test et pour moi ça fonctionne.

    Tu as bien mis :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    window.open('goAction.do',...
    oui, c'est bizzarre! peut etre mon navigateur.....

    Peux tu m'expliquer ton code?

  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
    Dans ton navigateur, le javascript ne serait pas désactivé par hasard?
    Quel navigateur utilises-tu ?
    Quand tu avais ajouté alert('test') dans l'évènement onclick, une popup d'alert s'ouvrait-elle ?

    Comme tu souhaites que l'Action soit exécutée sur un évènement onclick, il faut mettre javascript:void(0) dans l'attribut href.
    Si tu références le path de l'Action à la fois dans le href et dans le onclick, l'Action sera exécutée deux fois.

  9. #9
    Membre averti
    Profil pro
    Inscrit en
    Avril 2007
    Messages
    18
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Avril 2007
    Messages : 18
    Par défaut
    Oui le popup s'ouvrait bien et c'est pour cela que je l'ai mis: pour verifier que javascript soit bien activée.

    Mais je te remercie car ta solution marche trés bien!
    c'est mon navigateur qui flanche (IE), j'ai tester sur un autre navigateur et ca fonctionne.

    Peux tu m'expliquer ton code?

    Encore merci!

    Un autre truc : la première page contient un formulaire (jsp) et un lien à coté d'un libellé (le fameux <html:link>) me renvoyant vers un formulaire me permettant de modifier les elements du libellé.

    la balise tel quel me renvoie vers le bon formulaire mais pas personnalisé.
    en fait il faudrait que je puisse recuperer le parametre du libellé de mon champ caché <html:hidden>:
    /goAction.do?libelle.id=param_recupere

    quelqu'un a une idée de la manière dont je peux ecrire ma balise pour que le lien amène vers la bonne page?

  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
    Ben pourtant, moi je suis sous IE, et ça fonctionne très bien.
    Citation Envoyé par marruecco Voir le message
    Peux tu m'expliquer ton code?
    Que veux-tu que j'explique de plus ?

  11. #11
    Membre averti
    Profil pro
    Inscrit en
    Avril 2007
    Messages
    18
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Avril 2007
    Messages : 18
    Par défaut
    Citation Envoyé par c_nvy Voir le message
    Ben pourtant, moi je suis sous IE, et ça fonctionne très bien.

    Que veux-tu que j'explique de plus ?
    Encore merci!

    Un autre truc : la première page contient un formulaire (jsp) et un lien à coté d'un libellé (le fameux <html:link>) me renvoyant vers un formulaire me permettant de modifier les elements du libellé.

    la balise me renvoie vers le bon formulaire mais pas personnalisé.
    en fait il faudrait que je puisse recuperer le parametre du libellé de mon champ caché <html:hidden>:
    /goAction.do?libelle.id=param_recupere

    quelqu'un a une idée de la manière dont je peux ecrire ma balise pour que le lien amène vers la bonne page?

  12. #12
    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
    Peut-être en utilisant une EL :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    <html:link href="javascript:void(0)" onclick="window.open('goAction.do?libelle=${propriete}','SNU', 'location=1,status=1,scrollbar=1,width=300,height=300');">TEST3</html:link>

  13. #13
    Membre averti
    Profil pro
    Inscrit en
    Avril 2007
    Messages
    18
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Avril 2007
    Messages : 18
    Par défaut
    Ca ne marche pas!
    Par contre, je pense que je vais utiliser un script pour récuperer le formulaire.
    car en fait on choisit le type de segment par le biais d'un checkbox <html:select> et les elements de la checkbox sont definis par <html:Collection>
    Je vais appeler une fonction javascript pour generer l'url avec la recuperation des paramètres.
    la fonction ressemblera à ca:

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    function popupSegment(){
    collection=document.forms[monFomulaire].elements["codifications.segment"];
    var pos=collection.selectedIndex.collection[pos].value();
    /*je ne suis pas spécialiste javascript,pour generer l'url,je pense que je fais cela :*/
    var url='goAction.do?id.segment='+pos;
    window.open(url,'SNU', 'location=1,status=1,scrollbar=1,width=300,height=300');
    }
    1)comme je le repete, je ne m'y connais pas en javascript, donc pour la concatenation et le reste, je ne sais pas si cela est valable.
    Quelqu'un peut il me corriger?

    Je ferais l'appel via mon tag ainsi:
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    <html:link href="javascript:void()" onclick=" javascript:popupSegment()">
    2)là encore, peut on me corriger?

  14. #14
    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
    Désolée mais je ne suis pas forte en javascript.

    Si la solution que je t'ai donné avec une EL ne fonctionne pas, c'est sans doute parce que tu n'es pas en J2EE 1.4 (Servlet 2.4, JSP 2.0).

    Dans ce cas, tu peux utiliser la tld struts-html-el.tld :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    <html-el:link href="javascript:void(0)" onclick="window.open('goAction.do?libelle=${propriete}','SNU', 'location=1,status=1,scrollbar=1,width=300,height=300');">TEST3</html-el:link>
    Pour que cela fonctionne, il faut s'assurer que la tld struts-html-el.tld est bien sous WEB-INF et ajouter la directive taglib qui pointe sur cette tld dans la jsp.

  15. #15
    Membre averti
    Profil pro
    Inscrit en
    Avril 2007
    Messages
    18
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Avril 2007
    Messages : 18
    Par défaut
    t'inquiète! comme tu l'avais deviné: moi aussi je ne suis pas fort en javascript.
    (comme dans beaucoup de choses en info!)

    Mais je te remercie pour ta nouvelle piste!
    Je vais essayer et je te dirais si ca marche.

  16. #16
    Membre averti
    Profil pro
    Inscrit en
    Avril 2007
    Messages
    18
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Avril 2007
    Messages : 18
    Par défaut
    En fait mon chef de projet ne desire pas que l'on utilise des nouveaux tags jsp, surtout si on les utilise pour une seule fonctionnalité.

    De tout de manière mon problème est bien plus compliqué puisque de tout de manière je n'arrive qu'à récuperer l'id du segment mais pas tous ses attributs(libellés, type etc.).
    En fait l'application a été super mal concue: plusieurs actions forward d'autres actions qui eux meme forward d'autres actions etc.
    quand on se trouve sur la page segment et qu'on submit le formulaire de recherche, la grille est bien affiché avec les differents attributs de chaque segments.
    La modification du segment s'effectue bien.
    Mais depuis le popup de codification, il faut d'abord recuperer les informations du segments. aucun de mes service ne le faisait(ils recuperaient une collection avec les differents segments).
    J'ai donc du reprogrammer une classe action et une classe service qui effectue un simple select pour recuperer les infos du segment d'après son id.

    Mais ce n'est pas fini pour autant, car maintenant le popup segment s'affiche bien depuis le popup codification avec les bonnes infos sur le popup concerné mais le bouton creer est mort.

    Est ce que quelqu'un voit pourquoi?

    Je sais qu'une solution serait de creer une page jsp identique à celle du popup segment mais qui serait forwardé par une classe action spéciale (celle que j'ai crée) et ou le lien serait un simple <html:submit>.
    L'architecte m'a aussi parler de jspf.(kezako?)

    please, aidez moi je commence à nager.

Discussions similaires

  1. [débutant] Utilisation des tags "html:link", etc.
    Par ghohm dans le forum Struts 1
    Réponses: 6
    Dernier message: 30/05/2007, 17h58
  2. Invocation de Tag <html:link> dans un Tag JSP
    Par Bogdan dans le forum Struts 1
    Réponses: 4
    Dernier message: 29/12/2006, 09h38
  3. tag html link et passage de paramètre à url.
    Par david06600 dans le forum Struts 1
    Réponses: 1
    Dernier message: 22/08/2006, 14h22
  4. utiliser un bean dans le tags html:link
    Par clement42 dans le forum Struts 1
    Réponses: 3
    Dernier message: 29/07/2005, 18h36
  5. [struts html tag] html:link associé à un event javascript
    Par VinceFromBcn dans le forum Struts 1
    Réponses: 2
    Dernier message: 16/03/2005, 11h59

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