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 :

[struts][]taglib bean] afficher html avec write [FAQ]


Sujet :

Struts 1 Java

  1. #1
    Membre régulier
    Profil pro
    Inscrit en
    Février 2005
    Messages
    283
    Détails du profil
    Informations personnelles :
    Localisation : Belgique

    Informations forums :
    Inscription : Février 2005
    Messages : 283
    Points : 114
    Points
    114
    Par défaut [struts][]taglib bean] afficher html avec write
    salut tout le monde ,

    j'ai un petit problème, en fait
    le code suivant m'affiche des tags html

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
     
    <bean:define id="query" name="store" property="query"/>
    <bean:write name="query"/>
    alors que celui ci m'affiche l'html interpreté par le browser

    <%= store.getQuery() %>

    getQuery ne fait qu'un return "query".

    J'aimerais utiliser les taglibs Bean de struts plutôt qu'un scriptlet, quelqu'un à une idée ?

  2. #2
    Expert éminent sénior
    Avatar de adiGuba
    Homme Profil pro
    Développeur Java/Web
    Inscrit en
    Avril 2002
    Messages
    13 938
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations professionnelles :
    Activité : Développeur Java/Web
    Secteur : Transports

    Informations forums :
    Inscription : Avril 2002
    Messages : 13 938
    Points : 23 190
    Points
    23 190
    Billets dans le blog
    1
    Par défaut
    Salut,


    Je suppose que getQuery() renvoit une String contenant du code HTML...
    Dans ce cas il faut utiliser le code suivant afin que les caractères spéciaux ne soient pas modifié :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    <bean:write name="query" filter="false" />
    Mais ce serait mieux que "query" ne renvoit que les données afin de pouvoir modifier la présentation plus simplement...

    a++

  3. #3
    Membre régulier
    Profil pro
    Inscrit en
    Février 2005
    Messages
    283
    Détails du profil
    Informations personnelles :
    Localisation : Belgique

    Informations forums :
    Inscription : Février 2005
    Messages : 283
    Points : 114
    Points
    114
    Par défaut
    merci adiguba , ça marche !

    en fait, le code html renvoyé correspond à une table html, si je renvoie des données pour les insérer dans une table je ne vois pas comment faire car je ne sais pas combien de lignes et de colonnes seront renvoyés par query.

    Est ce que struts permet d'accéder aux tables html depuis une classe action en obtenant une sorte de référence vers une table ? car dans ce cas s'il existe des fonctions de type "ajouter ligne", "ajouter colonne", ce serait peut être plus propre que ma génération de code html

  4. #4
    Expert éminent sénior
    Avatar de adiGuba
    Homme Profil pro
    Développeur Java/Web
    Inscrit en
    Avril 2002
    Messages
    13 938
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations professionnelles :
    Activité : Développeur Java/Web
    Secteur : Transports

    Informations forums :
    Inscription : Avril 2002
    Messages : 13 938
    Points : 23 190
    Points
    23 190
    Billets dans le blog
    1
    Par défaut
    Tu peux par exemple créer un objet Java qui représentera une ligne de ton tableau, par exemple :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    public class Ligne {
     
    	private String name;
    	private int value;
     
    	public String getName() { return this.name; }
    	public int getValue() { return this.value; }
     
    }
    Ensuite tu fais en sorte que getQuery te renvoit un tableau (ou une List) remplit avec des objet 'Ligne', et tu parcours cette liste avec <logic:iterate/> :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
     
    <table>
    	<tr><td>Nom</td></td>Valeur</td></tr>
    <logic:iterate id="element" name="query">
    	<tr><td><bean:write name="element" property="name"/></td>
    		<td><bean:write name="element" property="value"/></td></tr>
    </logic:iterate>
    </table>
    A noter qu'on peut faire la même chose avec la JSTL et le tag <c:forEach/>...

    a++

  5. #5
    Membre régulier
    Profil pro
    Inscrit en
    Février 2005
    Messages
    283
    Détails du profil
    Informations personnelles :
    Localisation : Belgique

    Informations forums :
    Inscription : Février 2005
    Messages : 283
    Points : 114
    Points
    114
    Par défaut
    en fait, je n'aime pas trop les tags iterate dans les pages struts. Si web designer doit modifier la page il sera sans doute perdu. Les tags iterate pour moi ne séparent pas bien le code de la présentation, on déguise les boucles par des tags, mais c'est bien cela qu'on fait, des boucles et donc du code.

    je préferre avoir un tag custom qui me génère de l'html. Vous ne trouvez pas cela plus joli ?

  6. #6
    Expert éminent sénior
    Avatar de adiGuba
    Homme Profil pro
    Développeur Java/Web
    Inscrit en
    Avril 2002
    Messages
    13 938
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations professionnelles :
    Activité : Développeur Java/Web
    Secteur : Transports

    Informations forums :
    Inscription : Avril 2002
    Messages : 13 938
    Points : 23 190
    Points
    23 190
    Billets dans le blog
    1
    Par défaut
    Citation Envoyé par mlequim
    Les tags iterate pour moi ne séparent pas bien le code de la présentation, on déguise les boucles par des tags, mais c'est bien cela qu'on fait, des boucles et donc du code.
    Au contraire, les tags iterate sont des éléments de présentations spécifique aux collections de données... Mais bien sûr les webdesigners doivent apprendre à les utiliser, mais il n'ont pas à se soucier d'écrire du code Java, et le langage XML leurs est généralement assez familier...


    Comment un webdesigner peut-il modifier le design de la page si tu lui renvois déjà du code HTML ? Il ne peut faire que placer le 'composant' à un endroit ou a un autre, voir le styler avec des CSS... et c'est tout. Si par exemple il veut remplacer le tableau par une liste, il devra modifié le code de ta méthode Java (donc cela signifie qu'il n'y a pas de séparation entre le code et la présentation).


    Citation Envoyé par mlequim
    je préferre avoir un tag custom qui me génère de l'html. Vous ne trouvez pas cela plus joli ?
    Cela dépend... S'il s'agit d'un 'composant' standard de ton application tu peux très bien créer un custom tag pour l'afficher... Mais avec les JSP 2.0 il est possible d'utiliser les fichiers *.tag qui permettent d'écrire des tag comme une page JSP (et ainsi de laisser eventuellement le webdesigner les modifier)...


    Le webdesigner devrait pouvoir complètement modifier la présentation sans entrer dans le code des classes Java...
    Maintenant il est peut-être préférable de se familiariser avec les tags de la JSTL couplé avec les EL (les EL sont en standard avec les JSP 2.0, et la JSTL sera en standard avec les JSP 2.1 dans JEE 5.0) :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    <table>
       <tr><td>Nom</td></td>Valeur</td></tr>
    <c:forEach var="element" item="${store.query}">
       <tr><td>${element.name}</td><td>${element.name}</td></tr>
    </c:forEach>
    </table>
    a++

  7. #7
    Membre régulier
    Profil pro
    Inscrit en
    Février 2005
    Messages
    283
    Détails du profil
    Informations personnelles :
    Localisation : Belgique

    Informations forums :
    Inscription : Février 2005
    Messages : 283
    Points : 114
    Points
    114
    Par défaut
    tu m'as convaincu

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

Discussions similaires

  1. Réponses: 1
    Dernier message: 26/08/2010, 16h22
  2. afficher objet avec <bean:write>
    Par Philog dans le forum Struts 1
    Réponses: 9
    Dernier message: 25/02/2008, 17h55
  3. Réponses: 2
    Dernier message: 09/08/2007, 16h36
  4. Réponses: 4
    Dernier message: 17/07/2007, 13h30
  5. [STRUTS] balise <bean:write> dans <html:link>
    Par adrien.nicolet dans le forum Struts 1
    Réponses: 8
    Dernier message: 25/10/2005, 08h56

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