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 :

[html:img] comment ca marche?


Sujet :

Struts 1 Java

  1. #1
    Membre éclairé
    Profil pro
    Inscrit en
    Juillet 2006
    Messages
    372
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juillet 2006
    Messages : 372
    Par défaut [html:img] comment ca marche?
    Bonjour!

    Je veux, au clic sur une image, ouvrir une popup affichant des infos.
    J'ai une arraylist d'objets AvisBean que j'affiche dans ma jsp.
    Code AvisBean.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
    private String nomOffre;
    private String avis;
    private String[] informations;
    private String[] motifs;
    
    /*getters & setters (pour chacun des attributs : nomoffre, ..., motifs*/
    public porpType getBLABLABLA(){...}
    public void setBLABLABLA(String prop){...}
    /* getters & setters supplémentaires (pour utilisation jsp)*/
    public void setInformationsToString(String[] infos){}
    public String getInformationsToString(){
    String infostoString="";
    for(int i=0; i<informations.length){
    infostoString.concat(";");
    infostoString.concat(informations[i]);
    }
    return infostoString;
    }
    Dans ma jsp, j'affiche une liste d'AvisBean :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    <logic:iterate id="avis" name="nomDuFormOuEstStockeeListeAvis">
       <bean:write name="avis" property="nomOffre"/>
       <bean:write name="avis" property="avis"/>
       <html:img onclick="ouvrirPopupInfos()" paramId="infos" paramName="avis" paramProperty="informationsToString" srcKey="urlImagePlusInfo"/>
      <logic:iterate id="motif" name="avis" property="motifs">
          <bean:write name="motif"/>
      </logic:iterate>
    </logic:iterate>
    La fonction js appelée est la suivante :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
     
    function ouvrirPopupInfos(){
    window.open("/actionPlusInfos.do", "titre popup", "resizable=no");
    }
    Le passage en gras (html:img...), je l'ai mis car je pensais qu'en faisant cela, lorsque je passerais dans l'Action associée à /actionPlusInfos.do, je pourrais récupérer le paramètre infos initialisé avec la valeur informationsToString de l'avis correspondant au bouton image cliqué...

    Apparemment ca ne marche pas...

    Vous voyez ou est l'erreur?

  2. #2
    Membre éclairé
    Profil pro
    Inscrit en
    Juillet 2006
    Messages
    372
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juillet 2006
    Messages : 372
    Par défaut
    Je précise que le but est de récupérer les infos sous forme de String, pour ensuite les afficher dans la popup.

    on a un bouton par bloc affichant les information d'un avis (autant de blocs que le nb d'AvisBean dans l'arraylist).
    Quand je clique sur le bouton du bloc affichant les infos du ième AvisBean, je souhaite récupérer dans mon action les infos concernant ce même avis (les infos du ième avis)

    Je vois pas comment faire...

    Une idée?

  3. #3
    Membre expérimenté
    Homme Profil pro
    Développeur Java
    Inscrit en
    Août 2007
    Messages
    197
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations professionnelles :
    Activité : Développeur Java

    Informations forums :
    Inscription : Août 2007
    Messages : 197
    Par défaut
    Le problème c'est que l'info en question sera bien envoyé mais uniquement lors du post du formulaire en parametre GET je crois, donc vu que tu ne soumet pas le formulaire (tu ouvre une popup) tu ne pourra pas récupérer ton info de cette façon.

    LE plus simple serait quelque chose qui fait ça par exemple:

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
     
    function ouvrirPopupInfos(info){
    window.open("/actionPlusInfos.do?info="+info, "titre popup", "resizable=no");
    }
     
    <html:img onclick='ouvrirPopupInfos(<bean:write name="avis" property="informationsToString")' srcKey="urlImagePlusInfo"/>

  4. #4
    Membre éclairé
    Profil pro
    Inscrit en
    Juillet 2006
    Messages
    372
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juillet 2006
    Messages : 372
    Par défaut
    En fait mon navigateur aime pas trop le :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    <html:img onclick='ouvrirPopupInfos(<bean:write name="avis" property="informationsToString")' srcKey="urlImagePlusInfo"/>
    J'ai mon bouton qui s'affiche, effectivement, mais le javascript appelé ne s'exécute pas.

    En remplacant
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    <html:img onclick='ouvrirPopupInfos(<bean:write name="avis" property="informationsToString")' srcKey="urlImagePlusInfo"/>
    par
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    <html:img onclick='functionTest()' srcKey="urlImagePlusInfo"/>
    avec
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    function functiontest(){
    alert("test");
    }
    j'ai bien mon alerte avec le texte "test" dedans. Mais même en ne mettant que alert("test"); dans le corps de la function ouvrirPopupInfos(infos) bah ca marche pas, il entre pas dans le js.

    D'autre part, lorsque j'affiche ma page (celle depuis laquelle je clique sur le bouton censé ouvrir une popup), en bas il y a le status terminé avec un petit panneau attention...

    Et quand j'affiche le source, je vois bien que le <bean:write name="avis" property="informationsToString" n'est pas valorisé dans l'appel au js... Alors que juste au dessu il es valorisé (je l'ai mis dans la page, en dehors du tag html:img, pour vérifier qu'il le récupère bien, et la ca marche bien)

    une idée du pourquoi ca marche pas???

  5. #5
    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 avec les EL :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    <html:img onclick="javascript:window.open('actionPlusInfos.do?info=${avis.informationsToString}', 'popup', 'resizable=no');" srcKey="urlImagePlusInfo"/>
    ou
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    <html-el:img onclick="javascript:window.open('actionPlusInfos.do?info=${avis.informationsToString}', 'popup', 'resizable=no');" srcKey="urlImagePlusInfo"/>
    EDIT : Je viens de remplacer 'titre popup' par 'popup' parce que sinon, ça ne fonctionne pas.

  6. #6
    Membre éclairé
    Profil pro
    Inscrit en
    Juillet 2006
    Messages
    372
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juillet 2006
    Messages : 372
    Par défaut
    je viens d'assayer avec les EL... Ca ne marche pas
    pourtant :
    - j'ai les jar servlet-2.4 et jsp-2.0
    - au début du web.xml j'ai bien :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    <web-app xmlns="http://java.sun.com/xml/ns/j2ee"
    	xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
    	xsi:schemaLocation="http://java.sun.com/xml/ns/j2ee http://java.sun.com/xml/ns/j2ee/web-app_2_4.xsd"
    	version="2.4">
    mais j'ai aussi juste avant le web-app :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    <!DOCTYPE web-app PUBLIC "-//Sun Microsystems, Inc.//DTD Web Application 2.3//EN" "http://java.sun.com/dtd/web-app_2_3.dtd
    C'est peut être ca qui fait que je ne suis pas en J2EE 1.4....?

    Du coup j'esssaye de trouver la tld struts-bean-el.tld, que je n'arrive pas à télécharger....

    Je vais réessayer avec mon premier code en remplacant le titre de la popup pour voir si ca marche.... mais j'ai des doutes...

  7. #7
    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
    Citation Envoyé par AnneB Voir le message
    - au début du web.xml j'ai bien :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    <web-app xmlns="http://java.sun.com/xml/ns/j2ee"
    	xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
    	xsi:schemaLocation="http://java.sun.com/xml/ns/j2ee http://java.sun.com/xml/ns/j2ee/web-app_2_4.xsd"
    	version="2.4">
    mais j'ai aussi juste avant le web-app :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    <!DOCTYPE web-app PUBLIC "-//Sun Microsystems, Inc.//DTD Web Application 2.3//EN" "http://java.sun.com/dtd/web-app_2_3.dtd
    C'est peut être ca qui fait que je ne suis pas en J2EE 1.4....?
    Il faut mettre soit l'un, soit l'autre mais pas les deux.

    Essaie donc en conservant seulement la première balise web-app, ça devrait fonctionner.

    Sinon, c'est la tld struts-html-el.tld qu'il te faut et normalement, elle est livrée avec Struts. Quelle version de Struts utilises-tu ?

    Et finalement, j'ai fait le test avec les attributs paramId, paramName et paramProperty et ça ne fonctionne pas.

    Mais il faut absolument que tu modifies 'titre popup' en 'popup' car sinon, ça génére une erreur javascript.

  8. #8
    Membre éclairé
    Profil pro
    Inscrit en
    Juillet 2006
    Messages
    372
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juillet 2006
    Messages : 372
    Par défaut solution un peu pas top...mais ca marche :)
    Alors, voila, j'ai fait un truc pas tout à fait top, mais bon, vu que ca marche....

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    <bean:define id="infosString" name="avis" property="informationsToString"/>
    <a href="#" onclick='ouvrirPopupInfos("${infosString}")'>
      <html:img srcKey="keyurlImg" border="0" altKey="textAltKey"/>
    </a>
    j'ai essayé de faire la même chose en utilisant le tag html:link censé remplacer le tag a href... mais ca marche pas.... Et une journée entière juste pour ouvrir une popup, ca fait beaucoup trop lol... Alors j'ai laissé comme ca....

    En tout ca merci à tous pour votre aide

  9. #9
    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
    Si l'EL fonctionne dans la balise a, ça devrait fonctionner dans le tag html:img.
    Je ne comprends pas pourquoi tu n'arrives pas à le faire fonctionner.

    Sinon, la solution avec le tag html:link devrait être :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    <html:link href="javascript:void(0)" onclick='javascript:ouvrirPopupInfos("${avis.informationsToString}")'>
      <html:img srcKey="keyurlImg" border="0" altKey="textAltKey"/>
    </html:link>

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

Discussions similaires

  1. HTML purifier : comment ça marche ?
    Par django29 dans le forum Balisage (X)HTML et validation W3C
    Réponses: 0
    Dernier message: 04/09/2012, 16h39
  2. [MFC] list box : comment ça marche
    Par runn2 dans le forum MFC
    Réponses: 4
    Dernier message: 28/01/2004, 12h36
  3. [SYNEDIT] -> Comment ça marche ?
    Par MaTHieU_ dans le forum C++Builder
    Réponses: 2
    Dernier message: 18/01/2004, 19h11
  4. [TP][Turbo Vision] comment ça marche ??
    Par Costello dans le forum Turbo Pascal
    Réponses: 7
    Dernier message: 05/08/2003, 00h24
  5. [update][req. imbriquee] Comment ca marche ??
    Par terziann dans le forum Langage SQL
    Réponses: 3
    Dernier message: 11/07/2003, 12h51

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