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-Layout] image dans un layout:collection


Sujet :

Struts 1 Java

  1. #1
    Membre habitué

    Profil pro
    Inscrit en
    Juillet 2004
    Messages
    639
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juillet 2004
    Messages : 639
    Points : 167
    Points
    167
    Par défaut [Struts-Layout] image dans un layout:collection
    Bonsoir,

    Je voudrais utiliser la balise struts-layout avec une image. Mon code ressemble à ça :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    <layout:pager maxPageItems="2" >
     
    <layout:collection name="listVoiture">
    	<layout:image >
    	<layout:collectionItem property="marque"/>
    	<layout:collectionItem property="modele"/>
    </layout:collection>
    </layout:pager>
    Mon image est stockée dans une url.
    Comment faire?
    Merci.

  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
    Essaie ceci :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    <layout:pager maxPageItems="2" >
     
       <layout:collection name="listVoiture" id="voiture">
    	<layout:collectionItem title="">
    	   <layout:img src="${voiture.url}"/>
    	</layout:collectionItem>
    	<layout:collectionItem property="marque"/>
    	<layout:collectionItem property="modele"/>
       </layout:collection>
     
    </layout:pager>

  3. #3
    Membre habitué

    Profil pro
    Inscrit en
    Juillet 2004
    Messages
    639
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juillet 2004
    Messages : 639
    Points : 167
    Points
    167
    Par défaut
    Ca n'affiche pas la photo, dans le code source de la page j'ai ça :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    <td>
        <img src="${voiture.url}">
    </td>
    Le code de ma jsp :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    <%@ taglib uri="/WEB-INF/struts-layout.tld" prefix="layout" %>
     
    <layout:pager maxPageItems="2" >
     
       <layout:collection name="listVoiture" id="voiture">
    	<layout:collectionItem title="">
    	   <layout:img src="${voiture.photo}"/>
    	</layout:collectionItem>
    	<layout:collectionItem property="marque"/>
    	<layout:collectionItem property="modele"/>
       </layout:collection>
     
    </layout:pager>

  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
    C'est bizarre que l'EL ne soit pas interprétée.
    Normalement, même si tu n'es pas en J2EE 1.4, il me semble qu'une EL utilisée dans un tag Struts-Layout devrait être interprétée.

    Quelle version de Struts-Layout utilises-tu déjà ?

  5. #5
    Membre habitué

    Profil pro
    Inscrit en
    Juillet 2004
    Messages
    639
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juillet 2004
    Messages : 639
    Points : 167
    Points
    167
    Par défaut
    Je ne sais pas trop, je l'ai prise ici :
    http://struts.improve-technologies.com/downloads/
    Je ne vois pas de version d'indiquée.

  6. #6
    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
    Ce doit être la 1.3.
    Les EL présentes dans les tags Struts-Layout devraient normalement être interprétées.

    Enfin, je suppose que tu n'es toujours pas en J2EE 1.4.

    Pourrais-tu tester après avoir modifié le début de ton web.xml comme ceci :
    Code xml : 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">

  7. #7
    Membre habitué

    Profil pro
    Inscrit en
    Juillet 2004
    Messages
    639
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juillet 2004
    Messages : 639
    Points : 167
    Points
    167
    Par défaut
    il me souligne tous les début de ligne en me disant qqchose comme :
    Attribute "xmlns" must be declared for element type "web-app".

  8. #8
    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
    Au début de ton web.xml, n'aurais-tu pas laissé une balise web-app sans attribut ou avec un attribut id :
    Code xml : Sélectionner tout - Visualiser dans une fenêtre à part
    <web-app id="contexteAppli">
    si c'est le cas, supprime-là et laisse seulement celle que je t'ai donné.

    Et supprime cette ligne aussi :
    Code xml : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    <!DOCTYPE web-app 
        PUBLIC "-//Sun Microsystems, Inc.//DTD Web Application 2.3//EN" 
        "http://java.sun.com/dtd/web-app_2_3.dtd">
    Si ça ne fonctionne toujours pas, montre le code de ton web.xml.

  9. #9
    Membre habitué

    Profil pro
    Inscrit en
    Juillet 2004
    Messages
    639
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juillet 2004
    Messages : 639
    Points : 167
    Points
    167
    Par défaut
    C'est mieux pour le web.xml, mais j'ai une autre erreur dans ce fichier maintenant :
    Pour la balise
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
      <taglib>
      	<taglib-uri>/tags/struts-tiles</taglib-uri>
      	<taglib-location>/WEB-INF/struts-tiles.tld</taglib-location>
      </taglib>
    j'ai l'erreur suivante :

    cvc-complex-type.2.4.a: Invalid content was found starting with element 'taglib'. One of '{"http://
    java.sun.com/xml/ns/j2ee":description, "http://java.sun.com/xml/ns/j2ee":display-name, "http://
    java.sun.com/xml/ns/j2ee":icon, "http://java.sun.com/xml/ns/j2ee":distributable, "http://
    java.sun.com/xml/ns/j2ee":context-param, "http://java.sun.com/xml/ns/j2ee":filter, "http://
    java.sun.com/xml/ns/j2ee":filter-mapping, "http://java.sun.com/xml/ns/j2ee":listener, "http://
    java.sun.com/xml/ns/j2ee":servlet, "http://java.sun.com/xml/ns/j2ee":servlet-mapping, "http://
    java.sun.com/xml/ns/j2ee":session-config, "http://java.sun.com/xml/ns/j2ee":mime-mapping,
    "http://java.sun.com/xml/ns/j2ee":welcome-file-list, "http://java.sun.com/xml/ns/j2ee":error-page,
    "http://java.sun.com/xml/ns/j2ee":jsp-config, "http://java.sun.com/xml/ns/j2ee":security-
    constraint, "http://java.sun.com/xml/ns/j2ee":login-config, "http://java.sun.com/xml/ns/
    j2ee":security-role, "http://java.sun.com/xml/ns/j2ee":env-entry, "http://java.sun.com/xml/ns/
    j2ee":ejb-ref, "http://java.sun.com/xml/ns/j2ee":ejb-local-ref, "http://java.sun.com/xml/ns/
    j2ee":service-ref, "http://java.sun.com/xml/ns/j2ee":resource-ref, "http://java.sun.com/xml/ns/
    j2ee":resource-env-ref, "http://java.sun.com/xml/ns/j2ee":message-destination-ref, "http://
    java.sun.com/xml/ns/j2ee":message-destination, "http://java.sun.com/xml/ns/j2ee":locale-
    encoding-mapping-list}' is expected.

  10. #10
    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
    Soit tu mets la balise taglib dans une balise jsp-config :
    Code xml : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    <jsp-config>
      <taglib>
      	<taglib-uri>/tags/struts-tiles</taglib-uri>
      	<taglib-location>/WEB-INF/struts-tiles.tld</taglib-location>
      </taglib>
    </jsp-config>
    Soit tu supprimes la balise taglib de ton web.xml et tu modifies la directive taglib qui pointe sur la tld des tiles dans les jsp comme ceci :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    <%@ taglib uri="http://struts.apache.org/tags-tiles"  prefix="tiles" %>
    EDIT : l'avantage de la deuxième solution c'est que tu n'as plus besoin de copier la tld sous WEB-INF.
    En effet, il va se baser sur l'uri précisée dans la directive taglib pour aller chercher automatiquement la tld dans le jar des tiles.

  11. #11
    Membre habitué

    Profil pro
    Inscrit en
    Juillet 2004
    Messages
    639
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juillet 2004
    Messages : 639
    Points : 167
    Points
    167
    Par défaut
    Merci!
    ca marche bcp mieux.
    Petite dernière question, et oui je profite.
    J'ai aligné ma collection a gauche
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    <layout:collection name="listVoiture" id="voiture" align="left">
    Mais du coup le compteur de page se trouve a droite en haut, alors que je voudrais qu'il apparaisse en bas de page en dessous de la collection affichée.

  12. #12
    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
    Normalement, les numéros de page se trouvent en bas par défaut.

    Cela fonctionne-t'il mieux en ajoutant l'attribut linksLocation="bottom" dans le tag layout:pager :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
     <layout:pager maxPageItems="2" linksLocation="bottom" styleClass="PAGER">

  13. #13
    Membre habitué

    Profil pro
    Inscrit en
    Juillet 2004
    Messages
    639
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juillet 2004
    Messages : 639
    Points : 167
    Points
    167
    Par défaut
    Non,
    Voici le code source de ma page :
    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
    33
     
    <table cellspacing="0" cellpadding="0" border="0" align="left">
    <tr>
    <td valign="top">
      <table cellspacing="1" cellpadding="1" border="0" width="100%">
       <tr valign="top"><th></th></tr>
          <tr>
            <td>
    	   <img src="img/peugeot_407_coupe.jpg" height="100" width="130">
    	</td>
    	<td>Peugeot</td>
    	<td>407 coupé</td>
          </tr>
          <tr>
            <td>
    	   <img src="img/renault-megane.jpg" height="100" width="130">
    	</td>
    	<td>Renault</td>
    	<td>Mégane</td>
          </tr>
        </table>
    </td>
    </tr>
    </table>
     
    <table border="0" cellspacing="1" cellpadding="1" class="PAGER"">
      <tr>
        <td width="50%" style="text-align : right" class='PAGER'></td>
        <td  class='PAGER'>1&nbsp;
          <a href="/ECommerce/sort.do?layoutCollection=0&amp;pagerPage=1"   class="PAGER">2</a>&nbsp;<a href="/ECommerce/sort.do?layoutCollection=0&amp;pagerPage=2" class="PAGER">3</a>&nbsp;
       </td>
       <td width="50%" style="text-align : left" class='PAGER'><a href="/ECommerce/sort.do?layoutCollection=0&amp;pagerPage=1">&gt;&gt;</a></td>
    </tr></table>
    J'ai l'impression qu'il créé un tableau pour l'affichage des voitures et un pour les liens, mais qu'il n'y a pas de retour a la ligne entre les deux.

  14. #14
    Modérateur
    Avatar de OButterlin
    Homme Profil pro
    Inscrit en
    Novembre 2006
    Messages
    7 313
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations forums :
    Inscription : Novembre 2006
    Messages : 7 313
    Points : 9 529
    Points
    9 529
    Billets dans le blog
    1
    Par défaut
    Ça doit venir de tes classes de style...
    On peut voir le css ?

  15. #15
    Membre habitué

    Profil pro
    Inscrit en
    Juillet 2004
    Messages
    639
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juillet 2004
    Messages : 639
    Points : 167
    Points
    167
    Par défaut
    Je n'utilise aucun css pour le moment.

  16. #16
    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
    As-tu le même problème en utilisant les styles de Struts-Layout sur le layout:pager et le layout:collection comme ceci :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    <layout:pager maxPageItems="2" styleClass="PAGER">
     
       <layout:collection name="listVoiture" id="voiture" align="left" styleClass="FORM">
    	<layout:collectionItem title="">
    	   <layout:img src="${voiture.photo}"/>
    	</layout:collectionItem>
    	<layout:collectionItem property="marque"/>
    	<layout:collectionItem property="modele"/>
       </layout:collection>
     
    </layout:pager>

  17. #17
    Membre habitué

    Profil pro
    Inscrit en
    Juillet 2004
    Messages
    639
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juillet 2004
    Messages : 639
    Points : 167
    Points
    167
    Par défaut
    Non, toujours le meme soucis.

  18. #18
    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
    Ah oui, je sais, tu as oublié d'inclure les css de Struts-Layout.

    Donc, soit tu mets tout ton code dans un tag <layout:html> :
    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
    <layout:html>
     
    <layout:pager maxPageItems="2" styleClass="PAGER">
     
       <layout:collection name="listVoiture" id="voiture" align="left" styleClass="FORM">
    	<layout:collectionItem title="">
    	   <layout:img src="${voiture.photo}"/>
    	</layout:collectionItem>
    	<layout:collectionItem property="marque"/>
    	<layout:collectionItem property="modele"/>
       </layout:collection>
     
    </layout:pager>
     
    </layout:html>
    Soit tu mets le tag <layout:skin> dans la balise <head> comme ceci :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    <head>
    	<layout:skin includeScript="true"/>
    </head>

  19. #19
    Membre habitué

    Profil pro
    Inscrit en
    Juillet 2004
    Messages
    639
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juillet 2004
    Messages : 639
    Points : 167
    Points
    167
    Par défaut
    toujours pas.
    ca devient tordu j'ai l'impression.

  20. #20
    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
    Peux-tu montrer le code source généré ?

+ Répondre à la discussion
Cette discussion est résolue.
Page 1 sur 3 123 DernièreDernière

Discussions similaires

  1. Problème d'insertion d'une image dans un layout avec weight
    Par Devil Shark dans le forum Composants graphiques
    Réponses: 16
    Dernier message: 02/10/2013, 15h53
  2. Problème image dans un layout
    Par SimPlop dans le forum Composants graphiques
    Réponses: 6
    Dernier message: 09/03/2011, 01h54
  3. Réponses: 2
    Dernier message: 15/10/2009, 12h07
  4. [Struts-Layout] TextArea dans un <layout:collection>
    Par bobic dans le forum Struts 1
    Réponses: 6
    Dernier message: 12/01/2007, 12h43
  5. [struts] Afficher image dans JSP a partir d'un byte[]
    Par igloof dans le forum Struts 1
    Réponses: 1
    Dernier message: 16/05/2006, 11h11

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