Bonjour à tous,
je voudrais afficher un produit dans un panelGrid. Voici la classe 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
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;
	} 
}
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
 
 
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"));
	}
}
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
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>
Pour le moment j'affiche une image quelconque dans le premier a4j:commandButton. Mais en fait je voudrais y afficher l'image du produit.

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 ?