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 :

boucle forEach et conversion bytes[] / String [JSTL]


Sujet :

Taglibs Java

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre averti
    Profil pro
    Inscrit en
    Juillet 2005
    Messages
    23
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juillet 2005
    Messages : 23
    Par défaut boucle forEach et conversion bytes[] / String
    Bonjour,

    J'utilise dans ma jsp une list < reports > que je parcours avec un for each.

    la classe report:

    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
    public class report
    {
     
      String param1;
      String param2;
      Byte[] content;
     
      public String getParam1()
      {
        return param1;
      }
      public void setParam1(String param1)
      {
        this.param1 = param1;
      }
      public String getParam2()
      {
        return param2;
      }
      public void setParam2(String param2)
      {
        this.param2 = param2;
      }
      public Byte[] getContent()
      {
        return content;
      }
      public void setContent(Byte[] content)
      {
        this.content = content;
      }
    }
    la boucle:

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    <c:forEach items="${reports}" var="report">
    	<tr>
    		<td><c:out value="${report.param1}"/></td>
    		<td><c:out value="${report.param2}"/></td>
    		<td><c:out value="${report.content}"/></td>
    	</tr>
    </c:forEach>
    j'affiche bien param1 et param2, en revanche content est un byte[]. J'aimerai donc pouvoir le convertir en string pour l'afficher, quelque chose du genre : String s = new String(content); mais je ne vois pas comment accéder à la variable report pour faire un tel traitement.

    Merci pour votre aide.

  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 la classe report, tu peux ajouter le getter getContentString() qui convertit la propriété content en String et qui renvoie un String.
    Ensuite, pour l'afficher dans la jsp, tu remplaces content par contentString.

  3. #3
    Membre averti
    Profil pro
    Inscrit en
    Juillet 2005
    Messages
    23
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juillet 2005
    Messages : 23
    Par défaut
    Oui j'y avais pensé aussi, le problème est que ma classe report correspond a un bean Spring (servant a mapper une classe hibernate). Si j'ajoute une méthode getContentString(), spring va planter car il recherchera egalement un setContentString().

  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
    Alors, sinon essaie ceci :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    <td><%= new String(((report) report).getContent())%></td>
    EDIT : après réflexion, il doit falloir au préalable récupérer la variable report dans le scope page :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    <% report report=(report) pageContext.getAttribute("report") ; %>
    <td><%= new String(report.getContent()) %></td>
    J'en profite pour te signaler que, selon les conventions de nommage Java, le nom d'une classe Java doit commencer par une majuscule.
    Il serait donc plus propre de renommer la classe report en Report :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    <% Report report=(Report) pageContext.getAttribute("report") ; %>
    <td><%= new String(report.getContent()) %></td>

  5. #5
    Membre averti
    Profil pro
    Inscrit en
    Juillet 2005
    Messages
    23
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juillet 2005
    Messages : 23
    Par défaut
    Ok, en effet je bloquais sur la récupération de la variable qui n'est pas accessible directement.

    Pour le nom de classe, c'est un erreur d'écriture rapide dans le post, ma véritable classe ne s'appelle pas ainsi et est beaucoup plus longue

    Merci bien !

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

Discussions similaires

  1. Réponses: 2
    Dernier message: 22/07/2009, 12h11
  2. Comparaison de deux string, boucle foreach
    Par cecile22sky dans le forum C#
    Réponses: 2
    Dernier message: 31/03/2009, 11h12
  3. Réponses: 3
    Dernier message: 15/06/2007, 14h53
  4. Réponses: 20
    Dernier message: 11/07/2006, 17h43
  5. Conversion byte [] -> String
    Par MiJack dans le forum Langage
    Réponses: 3
    Dernier message: 20/10/2005, 18h16

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