Bonjour
Pour le contexte, je suis en train de développer un intranet pour l'entreprise qui m'emploie. Cet intranet implémente un système de "News" avec une description, un titre, une image le tout stoker dans une base SQL Server 2014.
Mon problème concerne l'image, dans mon bean qui est relier a ma table, j'ai déclarer l'image comme suivant:
J'utilise la balise de Omnifaces GraphicImage pour afficher mon image dans une liste mais si je met le code suivant comme valeur :
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9 @Column(name = "IMAGE", nullable = true) private byte[] image; public byte[] getImage() { return image; } public void setImage(byte[] image) { this.image = image; }
Ce qui me retourne une erreur.
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4 <ui:repeat value="#{gestionNewsForm.listNews}" var="news"> <o:graphicImage value="#{news.image}" width="100" height="100" /> </ui:repeat>
J'ai trouver une autre solution mais que je pense illogique. J'ai creer une classe Utilitaire pour les images dont voici le code:
Et du coup avec le code suivant :
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
11
12 @Named("ImageUtils") @ApplicationScoped public class ImageUtils { @EJB private NewsService m_newsService; public byte[] getImage(int newsid) { return m_newsService.getNews(newsid).getImage(); } }
Sa fonctionne !
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2 o:graphicImage value="#{ImageUtils.getImage(news.id)}" width="100" height="100" />
Mais dans un but de simplification, j'aimerais supprimer cette méthode qui "ne sert a rien" puisque le tableau de byte est déja recupérable depuis le Bean.
Est-ce que quelqu'un a déjà utiliser sa ?
Merci d'avance pour votre aide![]()
Partager