Bonjour à tous,
je voudrais afficher un produit dans un panelGrid. Voici la classe Produit :
Pour cela, j'ai créé le Bean suivant :
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
34
35
36
37
38
39
40
41
42
43
44 public class Produit { private String reference; private String designation; private float prixUnitaire=0; public Produit() { System.out.println("Produit créé"); } public Produit(String reference, String designation) { this.reference=reference; this.designation=designation; } public String getReference() { return reference; } public void setReference(String _reference) { reference = _reference; } public String getDesignation() { // your code here return designation; } public void setDesignation(String _designation) { this.designation=_designation; } public float getprixUnitaire() { return prixUnitaire; } public void setprixUnitaire(float _prixUnitaire) { prixUnitaire = _prixUnitaire; } }
et la page web suivante :
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 public class ProduitBean implements Serializable { private static final long serialVersionUID = 1493497774478166442L; private List<Produit> produits; public ProduitBean() { } public List<Produit> getProduits(){ return produits; } @PostConstruct public void init(){ System.out.println("ProduitBean.init"); produits = new ArrayList<Produit>(); produits.add(new Produit("1", "CD4001")); produits.add(new Produit("2", "NE555")); produits.add(new Produit("3", "1N4001")); produits.add(new Produit("4", "DZ6809")); produits.add(new Produit("5", "MECANISME DECK SANYO")); produits.add(new Produit("6", "COURROIE 20MM")); produits.add(new Produit("7", "TRANSFO 220V/12V 1A")); produits.add(new Produit("8", "TRANSFO 220V/9V 200mA")); } }
Pour le moment j'affiche une image quelconque dans le premier a4j:commandButton. Mais en fait je voudrais y afficher l'image du produit.
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
34
35
36
37
38
39
40 <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd"> <html xmlns="http://www.w3.org/1999/xhtml" xmlns:h="http://java.sun.com/jsf/html" xmlns:a4j="http://richfaces.org/a4j" xmlns:rich="http://richfaces.org/rich" xmlns:f="http://java.sun.com/jsf/core" xmlns:ui="http://java.sun.com/jsf/facelets"> <head></head> <body> <rich:panel style="width:150px;height:200px;"> <h:form> <rich:dataGrid value="#{produitBean.produits}" var="produit" columns="2" first="1" elements="8"> <f:facet name="header"> <h:outputText value="Produits"></h:outputText> </f:facet> <rich:panel> <f:facet name="header"> <h:outputText value="#{produit.designation}"></h:outputText> </f:facet> <h:panelGrid columns="2"> <a4j:commandButton image="/images/5.jpg" type="image"/> <br/> <h:outputText value="Reference :" styleClass="label"></h:outputText> <h:outputText value="#{produit.reference}"/> <h:outputText value="Prix :" styleClass="label"></h:outputText> <h:outputText value="#{produit.prixUnitaire}"/> <a4j:commandButton image="/images/web_interface/addfp_small.jpg" type="image"/> </h:panelGrid> </rich:panel> <f:facet name="footer"> <rich:datascroller></rich:datascroller> </f:facet> </rich:dataGrid> </h:form> </rich:panel> </body> </html>
Voici donc mon problème :
Je sais qu'il faudra créer un attribut Image (avec les getter/setter) dans la classe Produit, mais je voudrais que ce soit juste le chemin, et non une image pure, c'est à dire ceci :
String cheminImage;
String getCheminImage()...;
void setCheminImage(...;
et non ceci :
Image imageProduit;
Image getImageProduit()....;
void setImageProduit(....;
Malheureusement quand je fais cela, aucune image ne s'affiche :-(.
Quelqu'un pour m'aider ?
Partager