affichage d'une image en connaissant son chemin
Bonjour à tous,
je voudrais afficher un produit dans un panelGrid. Voici la classe Produit :
Code:
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:
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:
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 ?