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

Taglibs Java Discussion :

Utiliser une variable JSTL comme SRC d'une image [JSTL]


Sujet :

Taglibs Java

  1. #1
    Membre du Club Avatar de Lovegiver
    Homme Profil pro
    Développeur Java
    Inscrit en
    Août 2015
    Messages
    81
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 52
    Localisation : France, Essonne (Île de France)

    Informations professionnelles :
    Activité : Développeur Java
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Août 2015
    Messages : 81
    Points : 57
    Points
    57
    Par défaut Utiliser une variable JSTL comme SRC d'une image
    Bonjour,

    je rencontre quelques difficultés. On est a à la frontière JSP / JSTL / EL, je ne sais plus trop à qui m'adresser.

    J'ai des utilisateurs dans une BDD qui ont des avatars. Le nom de l'image est stocké en base sous cette forme : monAvatar.jpg

    Ces utilisateurs peuvent commenter des articles, et je souhaite afficher leur avatar à côté de leur commentaire.

    Les images concrètes sont stockées dans un dossier : images/users/x/ où "x" est l'id en base de l'utilisateur
    -> je ne veux pas inscrire en dur dans la BDD le nom du répertoire où sont stcokées les images car en cas de changement c'est mort

    Pour afficher mon image dans la page web, j'utilise comme il se doit : <img src="xxxxxxxx" alt="" class="responsive-img">

    C'est là que les ennuis commencent.

    Avec JSTL, je récupère le nom de mon image avec : ${user.avatar} dans le cadre d'une boucle <c:foreach...

    Je voudrais pouvoir former dynamiquement l'adresse de l'image de la façon suivante : <img src="images/users/" & ${user.id} & "/" & ${user.avatar}

    Sauf qu'il s'agit là de HTML et qu'il ne m'est pas possible de concaténer cette chaîne.

    Je ne maîtrise ni JavaScript ni Jquery. J'ai essayé de créer des fonctions dans chacun de ces langages afin de concaténer ces valeurs mais je n'arrive même pas à passer une expression JSTL comme ${user.id} en paramètre à du JavaScript.

    Auriez-vous une idée ?

    Merci

  2. #2
    Membre du Club Avatar de Lovegiver
    Homme Profil pro
    Développeur Java
    Inscrit en
    Août 2015
    Messages
    81
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 52
    Localisation : France, Essonne (Île de France)

    Informations professionnelles :
    Activité : Développeur Java
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Août 2015
    Messages : 81
    Points : 57
    Points
    57
    Par défaut
    OK, j'ai trouvé :
    1) j'ai viré les "" de l'expression <img src="..."
    2) j'ai viré les & ou + que j'utilisais pour concaténer

    Du coup, le résultat est aussi simple qu'évident : <img src=images/users/${comment.id_User}/${comment.nomImage} alt="" />

    Désolé d'avoir gâché de la bande passante

  3. #3
    Membre régulier
    Homme Profil pro
    Expert Middleware
    Inscrit en
    Septembre 2006
    Messages
    75
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Nord (Nord Pas de Calais)

    Informations professionnelles :
    Activité : Expert Middleware

    Informations forums :
    Inscription : Septembre 2006
    Messages : 75
    Points : 100
    Points
    100
    Par défaut
    Personnelement j'aurais utiliser le tag c:out. L'avantage est que tu peux y mettre un défaut si ton champs est vide

    <img src="images/users/<c:out value="${user.id}" /> default="Inconnu"/>/<c:out value="${user.avatar}" default="Inconnu.jpg"/>" />
    Quand on est mort, on ne sait pas qu’on est mort, c’est pour les autres que c’est difficile… Quand on est con, c’est pareil.

  4. #4
    Membre du Club Avatar de Lovegiver
    Homme Profil pro
    Développeur Java
    Inscrit en
    Août 2015
    Messages
    81
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 52
    Localisation : France, Essonne (Île de France)

    Informations professionnelles :
    Activité : Développeur Java
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Août 2015
    Messages : 81
    Points : 57
    Points
    57
    Par défaut
    Citation Envoyé par Syberi@ Voir le message
    Personnelement j'aurais utiliser le tag c:out. L'avantage est que tu peux y mettre un défaut si ton champs est vide

    <img src="images/users/<c:out value="${user.id}" /> default="Inconnu"/>/<c:out value="${user.avatar}" default="Inconnu.jpg"/>" />
    L'idée est excellente et je te remercie.
    En revanche, y a un soucis : dès que j'utilise les guillemets dans src= "xxx" j'ai des erreurs

    Voilà comment j'ai adapté ta réponse :

    <img src=images/vendeurs/<c:out value=${offre.offreEts.id_Ets}/${offre.offreEts.etsImage} default="valise_voyage.jpg" /> alt="voyage"
    class="responsive-img">


    type Rapport d''exception

    message /vues/Accueil.jsp (line: 38, column: 46) Symbole guillemet (quote) attendu

    description Le serveur a rencontré une erreur interne qui l''a empêché de satisfaire la requête.

    exception

    org.apache.jasper.JasperException: /vues/Accueil.jsp (line: 38, column: 46) Symbole guillemet (quote) attendu

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

Discussions similaires

  1. insérer une variable dans le nom d'une variable
    Par leninelenine dans le forum Général Python
    Réponses: 11
    Dernier message: 28/05/2015, 08h25
  2. Récupération de la valeur d une variable elle même contenue dans une variable
    Par guiplongeur dans le forum Shell et commandes GNU
    Réponses: 3
    Dernier message: 16/03/2015, 16h23
  3. Mettre une variable dans l'appel d'une variable de session
    Par PrinceMaster77 dans le forum Langage
    Réponses: 2
    Dernier message: 13/04/2011, 10h12
  4. Réponses: 9
    Dernier message: 05/11/2008, 09h37
  5. Réponses: 1
    Dernier message: 17/01/2007, 21h52

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