3
데이터베이스의 이미지를 나타내는 StreamedContent 객체 (Primeface Type)가 포함 된 객체 목록이있는 Bean이 있습니다. 이제 JSF 2.0 페이지 (Primefaces 포함)에서이 목록을 반복하여 이미지를 보여 드리려고합니다.ui : repeat 또는 p : dataTable에서 p : graphicImage 사용
<p:graphicImage value="#{ImageLoader.oneImage}" title="aImage" alt="no Img"/>
을하지만 둥지 경우는 C에서이 태그 : 이런 식으로 하나 개의 이미지를 표시 작동 foreach는, UI : 반복하거나 P : 데이터 테이블, 이미지가로드되지 않습니다!
@Named(value = "ImageLoader")
@Stateless
public class ImageLoader {
@Inject
private ImageFacade imgFacade;
private List<StreamedContent> allImages = new ArrayList <>();
private StreamedContent oneImage;
public StreamedContent getOneImage() {
List<Image> findAll = imgFacade.findAll();
byte[] imagedata = findAll.get(0).getImagedata();
StreamedContent retVal = new DefaultStreamedContent(new ByteArrayInputStream(imagedata));
return retVal;
}
public void setOneImage(StreamedContent oneImage) {
this.oneImage = oneImage;
}
public List<StreamedContent> getAllImages() {
List<Image> findAll = imgFacade.findAll();
Logger.getLogger(ImageLoader.class.getName()).log(Level.INFO, "### COUNT: {0}", findAll.size());
for (Image image : findAll) {
byte[] imagedata = image.getImagedata();
allImages.add(new DefaultStreamedContent(new ByteArrayInputStream(imagedata)));
Logger.getLogger(ImageLoader.class.getName()).log(Level.INFO, "### Added Image {0}", image.getImagename());
}
return allImages;
}
public void setAllImages(ArrayList<StreamedContent> allImages) {
this.allImages = allImages;
}
}
내가 문제를 볼 수 없습니다, 당신은 제발 도울 수 : 대체 텍스트가 대신
<ui:repeat value="#{ImageLoader.allImages}" var="img">
<p:graphicImage value="#{img}" alt="Hier sollte ein Bild sein" />
<br/>
</ui:repeat>
이미지 - 로더 콩 주심? :) 내가 하루 정도이 일에 내 머리를 부러졌지만, 나는 해결책을 발견
좋은 생각이 graphicImage 캐시에 추가 할 = 거짓 –