Dans cet exemple , on va montrer comment travailler avec une image dynamique en utilisant le composant graphicImage du primefaces.
voici la classe du managedBean:
InputStream is = new FileInputStream("c://jsf.png"); Cette ligne va convertir le fichier de l'image en InputStream.
Voici le code de la page qui va afficher l'image .
Voici ce qu'on va obtenir aprés exécution:
Vous trouvez en video ici
ReplyDeletehttps://www.youtube.com/channel/UCtpoCoqCZawknFWhHpJ-YkQ
Bonjour, j'ai appliqué votre exemple sur mon projet et ça marche bien. Mais j'aimerais savoir si c'était le contraire comment s'y prendre ? parce que je suis face à un problème qui est d'inserer des images dans ma base de données que je vais afficher après sur mon formulaire d'affichage.
ReplyDeleteJe suis novice et mon projet concerne la Gestion des élèves d'un établissement scolaire.
Je veux charger dans ma base la photo d'identité de chaque élève.
Merci d'avance
Bonjour,
Deleteil suffit d'enregistrer tes images en type byte ou blob.Tu travaille la couche persistance avec hibernate ou jdbc?
j'ai essaie ta solution mais ça ne donne pas j'ai plutôt cette erreur
ReplyDeleteFATAL: JSF1073 : java.lang.ClassCastException intercepté durant le traitement de RENDER_RESPONSE 6 : UIComponent-ClientId=, Message=org.primefaces.model.DefaultStreamedContent cannot be cast to java.lang.String
FATAL: org.primefaces.model.DefaultStreamedContent cannot be cast to java.lang.String
java.lang.ClassCastException: org.primefaces.model.DefaultStreamedContent cannot be cast to java.lang.String
merci de votre reponse j'ai bien compris le probleme mais je ne le sais comment le résoudrer
tu peux me donner ton bout de code?
DeleteMerci de votre aide je ne sais pas comment ajouter image donc je vais coller le code brut comme ça seulement
Deletevoici le controller
public class graphicImageView implements Serializable{
StreamedContent content=new DefaultStreamedContent() ;
public StreamedContent getContent() {
try {
InputStream is = new FileInputStream("/home/alex-gobe/Images/route.jpg");
is.close();
content = new DefaultStreamedContent(is);
} catch (FileNotFoundException e) {
// TODO Auto-generated catch block
e.printStackTrace();
} catch (IOException e) {
// TODO Auto-generated catch block
e.printStackTrace();
}
return content;
}
public void setContent(StreamedContent content) {
this.content = content;
}
}
voici la vue
et le journanl d'erreur de GlassFish
FATAL: JSF1073 : java.lang.ClassCastException intercepté durant le traitement de RENDER_RESPONSE 6 : UIComponent-ClientId=, Message=org.primefaces.model.DefaultStreamedContent cannot be cast to java.lang.String
FATAL: org.primefaces.model.DefaultStreamedContent cannot be cast to java.lang.String
java.lang.ClassCastException: org.primefaces.model.DefaultStreamedContent cannot be cast to java.lang.String
at com.sun.faces.renderkit.RenderKitUtils.getImageSource(RenderKitUtils.java:1387)
at com.sun.faces.renderkit.html_basic.ImageRenderer.encodeEnd(ImageRenderer.java:96)
at javax.faces.component.UIComponentBase.encodeEnd(UIComponentBase.java:920)
at javax.faces.component.UIComponent.encodeAll(UIComponent.java:1863)
at javax.faces.render.Renderer.encodeChildren(Renderer.java:176)
at javax.faces.component.UIComponentBase.encodeChildren(UIComponentBase.java:890)
at javax.faces.component.UIComponent.encodeAll(UIComponent.java:1856)
at javax.faces.component.UIComponent.encodeAll(UIComponent.java:1859)
at javax.faces.component.UIComponent.encodeAll(UIComponent.java:1859)
at com.sun.faces.application.view.FaceletViewHandlingStrategy.renderView(FaceletViewHandlingStrategy.java:458)
at com.sun.faces.application.view.MultiViewHandler.renderView(MultiViewHandler.java:134)
at com.sun.faces.lifecycle.RenderResponsePhase.execute(RenderResponsePhase.java:120)
at com.sun.faces.lifecycle.Phase.doPhase(Phase.java:101)
at com.sun.faces.lifecycle.LifecycleImpl.render(LifecycleImpl.java:219)
at javax.faces.webapp.FacesServlet.service(FacesServlet.java:659)
at org.apache.catalina.core.StandardWrapper.service(StandardWrapper.java:1682)
at org.apache.catalina.core.StandardWrapperValve.invoke(StandardWrapperValve.java:318)
at org.apache.catalina.core.StandardContextValve.invoke(StandardContextValve.java:160)
at org.apache.catalina.core.StandardPipeline.doInvoke(StandardPipeline.java:734)
at org.apache.catalina.core.StandardPipeline.invoke(StandardPipeline.java:673)
at com.sun.enterprise.web.WebPipeline.invoke(WebPipeline.java:99)
et encore merci pour votre réponse ma tête chauffe déjà
la vue
Deletebjr svp j'ai vraiment besoin de votre aide merci
ReplyDelete