J'essaie d'avoir une image graphique dynamique à partir de la base de données. J'ai trouvé quelques questions en accord ici dans SO mais d'une manière ou d'une autre cela ne fonctionne pas.Image graphique dynamique
Page:
<p:dataList styleClass="routeDatalist" value="#{searchRoutesBean.foundRoutes}" var="uiRoute">
<p:outputLabel value="USERID #{uiRoute.owner.id}"/>
<h:graphicImage value="#{photoStreamer.streamedContent}" styleClass="userProfileImage">
<f:param name="userId" value="#{uiRoute.owner.id}" />
</h:graphicImage>
<p:/dataList>
Je reçois ma liste d'objets de sauvegarde haricots
@SessionScoped
@ManagedBean
public class SearchRoutesBean{
private List<UIRoute> foundRoutes;
...
}
J'ai créé un backing bean qui devrait prendre la bytearray de userimage et créer un contenu diffusé en continu
@ManagedBean(name = "photoStreamer")
@ApplicationScoped
public class PhotoStreamer implements Serializable {
@Autowired
UserService userService;
private StreamedContent streamedContent;
public StreamedContent getStreamedContent() {
ExternalContext externalContext = FacesContext.getCurrentInstance()
.getExternalContext();
String userId = externalContext.getRequestParameterMap().get("userId");
if (StringUtils.isNotBlank(userId)) {
User user;
try {
user = userService.getUserById(Long.valueOf(userId));
byte[] image = user.getProfileJpegImage();
if (image != null && image.length > 0) {
return new DefaultStreamedContent(new ByteArrayInputStream(
image), "image/jpeg");
} else {
BufferedImage bufferedImg = new BufferedImage(250, 350,
BufferedImage.TYPE_INT_RGB);
Graphics2D g2 = bufferedImg.createGraphics();
g2.drawString("User has no ProfilImage", 50, 175);
ByteArrayOutputStream os = new ByteArrayOutputStream();
ImageIO.write(bufferedImg, "png", os);
return new DefaultStreamedContent(new ByteArrayInputStream(
os.toByteArray()), "image/png");
}
} catch (NumberFormatException | UserServiceException | IOException e) {
throw new IllegalStateException(e);
}
}
return null;
}
}
Je ne sais pas pourquoi mais le paramètre donné userId est toujours nul.
Est-ce que quelqu'un sait quel pourrait être le problème? BR
suivre ce tutoriel https://www.youtube.com/watch?v=imiBwk_xqaE – Makky
C'est excactly ce que je fais ?! La seule différence est que j'utilise un dataList au lieu de dataTable. – DanDiesel
essayez avec datatable et voir si cela fonctionne pour vous d'abord. – Makky