Ich habe versucht, ein Panel anzuzeigen, in dem Benutzer eine Liste von Elementen Kategorie sehen können (als Bilder angezeigt) und klicken sie Produkte in der Kategorie anzeigen könnenWie <p: graphicImage> mit DefaultStreamedContent in einem ui zu verwenden ist: wiederholen?
Für die Anzeige der Positionstyp (Bilder angezeigt werden), i die ui verwendet: repeat nad die Stütz Bohne calss Unten ist mein xhtml Code
<ui:repeat id="repeat" value="#{getData.images}" var="img" varStatus="loop">
<h:panelGroup>
<p:graphicImage id="img1" value="#{img}" alt="image not available" >
</p:graphicImage>
</h:panelGroup>
</ui:repeat>
Und die Managed Bean-Code Teile
private ByteArrayOutputStream baos = new ByteArrayOutputStream();
private List<StreamedContent> imageList = new ArrayList<StreamedContent>();
public List<StreamedContent> getImages(){
for (int i = 0; i < sdh.getNumOfImages(); i++) {
imageID = imageIDArray.get(i);
ImageService imgSer = new ImageService();
imgList.add(imageID);
imgSer.setData(imageID);
baos = imgSer.getImage();
try {
imageList.add(new DefaultStreamedContent(new
ByteArrayInputStream(baos.toByteArray())));
} catch (Exception ex) {
ex.printStackTrace();
}
}
imageNum = 0;
return imageList;
}
public StreamedContent getData() {
baos = imageList.get(imageNum);
//imageList.add(baos);
imageNum++;
return new DefaultStreamedContent(new ByteArrayInputStream(baos.toByteArray()));
}
Nun mein Problem, wenn ich nicht uncomment th e 'imageList.add (baos)' in 'getData' werden die Bilder nicht angezeigt. Nun möchte ich wirklich wissen, wie das 'Ui: Repeat' funktioniert, da die 'ImageList' die Bilder enthält und ich kann das gleiche speichern, wenn in beiden der Methode erforderlich. Wenn ich eine feste Zahl (zB: 'imageList.get (0)') in der Methode 'getData' festlege, wird dasselbe Bild mehrmals angezeigt. Wo als ob ich die 'imageNum' ohne die 'imageList.add (baos)' setzen es Fehler 'Fehler beim Streaming dynamische Ressource'
Ich müde Bjorn Pollex Vorschlag und machte die notwendigen Änderungen, aber jetzt Bilder erscheinen nicht
Sie verweisen nicht die loop-variable ('img' in Ihrem Fall) innerhalb Ihrer''. Ihre 'getImages' sollten eine' List 'zurückgeben, und Ihr' 'sollte' value = "# {img}" 'haben. –