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:
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;
}
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
 
<ui:repeat value="#{gestionNewsForm.listNews}" var="news">
   <o:graphicImage value="#{news.image}" width="100" height="100" />
</ui:repeat>
Ce qui me retourne une erreur.
J'ai trouver une autre solution mais que je pense illogique. J'ai creer une classe Utilitaire pour les images dont voici le code:
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();
	}
}
Et du coup avec le code suivant :
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
 
o:graphicImage value="#{ImageUtils.getImage(news.id)}" width="100" height="100" />
Sa fonctionne !

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