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

Servlets/JSP Java Discussion :

JSP : Tableau "dynamique"


Sujet :

Servlets/JSP Java

  1. #1
    Membre régulier
    Profil pro
    Inscrit en
    Juillet 2004
    Messages
    58
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juillet 2004
    Messages : 58
    Points : 70
    Points
    70
    Par défaut JSP : Tableau "dynamique"
    Bonjour,

    Je dois faire évoluer une application de ma boîte et je suis confronté au problème suivant : j'ai une JSP qui contient plusieurs tableaux qui sont affichés (ou pas) en fonction de données contenues dans le bean.
    Jusque là rien d'anormal sauf que ces tableaux les uns des autres ne différent que par deux choses : une alternance de couleur blanc/gris pour les colonnes et l'ajout de colonne (ca je pense pouvoir gérer). A priori c'est l'alternance de blanc-gris qui a poser soucis à mes prédécesseurs.
    Comme je dois ajouter un nouveau tableau, je souhaiterais ne pas avoir le faire dans les 4 if de la page (plus de 1300 lignes !!!).
    Comment est ce que vous géreriez cela ?

    Merci de votre attention.

  2. #2
    Expert éminent

    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
    Points : 7 778
    Points
    7 778
    Par défaut
    Lorsque tu boucles sur les colonnes, tu peux tester la valeur de l'index et affecter une couleur selon que cette valeur est divisible par deux ou pas.

    Si tu es en J2EE 1.4, tu peux faire cela très facilement via une EL :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    <td bgcolor="${iColonne%2==0?'#ffffff':'#c0c0c0'}">
    Sinon, tu peux utiliser la JSTL avec le tag c:choose :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    <c:choose> 
    	<c:when test="${iColonne % 2 == 0}"> 
    		<td bgcolor="#ffffff'"> 
    	</c:when> 
    	<c:otherwise> 
    		<td bgcolor="#c0c0c0'"> 
    	</c:otherwise> 
    </c:choose>
    ou en dernier recours, écrire l'équivalent avec des scriptlets.

  3. #3
    Membre régulier
    Profil pro
    Inscrit en
    Juillet 2004
    Messages
    58
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juillet 2004
    Messages : 58
    Points : 70
    Points
    70
    Par défaut
    Merci pour ta réponse

    PS : je me rends que je n'avais pas été assez clair, l'idée sous-jacente à ma question était bien entendue de virer ces if imbriqués.

  4. #4
    Expert éminent

    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
    Points : 7 778
    Points
    7 778
    Par défaut
    Avec la première solution, pas besoin de if.
    Cette solution ne convient pas ? Tu n'es pas en J2EE 1.4 ?

  5. #5
    Membre régulier
    Profil pro
    Inscrit en
    Juillet 2004
    Messages
    58
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juillet 2004
    Messages : 58
    Points : 70
    Points
    70
    Par défaut
    Non non, tout va bien, ta réponse me satisfait (d'ailleurs j'ai mis résolu), je me suis juste senti obliger de compléter mon problème même si tu avais bien compris

  6. #6
    Membre régulier
    Profil pro
    Inscrit en
    Juillet 2004
    Messages
    58
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juillet 2004
    Messages : 58
    Points : 70
    Points
    70
    Par défaut
    Petite question, comment puis je obtenir "icolonne" sachant que je ne suis pas dans une boucle de programmation ?

    merci.

  7. #7
    Expert éminent

    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
    Points : 7 778
    Points
    7 778
    Par défaut
    Comment affiches-tu le tableau dans la page ?

  8. #8
    Membre régulier
    Profil pro
    Inscrit en
    Juillet 2004
    Messages
    58
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juillet 2004
    Messages : 58
    Points : 70
    Points
    70
    Par défaut
    En pure Hmtl.

    je pense que je vais devoir incrémenter la variable à la main entre chaque colonne.

  9. #9
    Expert éminent

    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
    Points : 7 778
    Points
    7 778
    Par défaut
    Mais tu boucles bien quelque part sur une collection ou un tableau avec du code Java non ?
    De quel type est l'objet qui contient les données à afficher ?

  10. #10
    Membre régulier
    Profil pro
    Inscrit en
    Juillet 2004
    Messages
    58
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juillet 2004
    Messages : 58
    Points : 70
    Points
    70
    Par défaut
    Non, car c'est l'entête du tableau.
    En gros l'entête du tableau n'est pas la même en fonction de plusieurs booléens, ca donne a peu pres ca :
    if(booleen1) {
    tableau1
    }else {
    if(booleen2) {
    tableau2
    }else{
    tableau3
    }
    }


    Mais franchement je pense que je vais prendre l'option "goret", la jsp fait deja plus de 3000 lignes mais bon ...

  11. #11
    Expert éminent

    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
    Points : 7 778
    Points
    7 778
    Par défaut
    J'avais compris que tes tableaux étaient dynamiques. Apparemment, ce n'est pas du tout le cas.
    Ce qui est dynamique, c'est simplement la récupération des booleen pour déterminer quel tableau afficher, c'est cela ?

    Si les tableaux sont codés en html dans la jsp, tu ne peux pas appliquer ma solution. Tu vas devoir modifier chaque balise <td>.

  12. #12
    Membre régulier
    Profil pro
    Inscrit en
    Juillet 2004
    Messages
    58
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juillet 2004
    Messages : 58
    Points : 70
    Points
    70
    Par défaut
    J'avais mis dynamique entre guillemets parce qu'en fait ils sont plutôt lourd ces tableaux :p
    Je bosse sur une solution en Js... mais pas facile de gérer les colspan et rowspan ^^

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

Discussions similaires

  1. [Tableau] Allocation dynamique du contenu
    Par VincenzoR dans le forum Collection et Stream
    Réponses: 8
    Dernier message: 08/05/2004, 21h57
  2. [xsl]simuler le mecanisme OO de "liaison dynamique"
    Par philemon_siclone dans le forum XSL/XSLT/XPATH
    Réponses: 10
    Dernier message: 19/12/2003, 12h34

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