Wie verwende ich <p: graphicImage> mit DefaultStreamedContent in einem UI: Repeat?

Ich habe versucht, ein Bedienfeld anzuzeigen, in dem der Benutzer eine Liste der Artikelkategorien (als Bilder angezeigt) sehen kann, und beim Klicken können sie Produkte innerhalb der Kategorie anzeigen (Bilder werden angezeigt).

Für die Anzeige der Artikelkategorie habe ich die Benutzeroberfläche verwendet: Wiederholen und die unterstützenden Bean 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 das 'imageList.add (baos)' in 'getData' nicht auskommentiere, werden die Bilder nicht angezeigt. Jetzt möchte ich wirklich wissen, wie das "Ui: Repeat" funktioniert, da die "ImageList" die Bilder enthält und ich die gleichen speichern kann, wenn in einer der beiden Methoden erforderlich. Wenn ich eine feste Zahl (zB 'imageList.get (0)') in der 'getData'-Methode spezifiziere, wird dasselbe Bild mehrmals angezeigt. Wo, als ob ich 'imageNum' ohne 'imageList.add (baos)' einfügen würde, wird der Fehler 'Fehler beim Streamen der dynamischen Ressource' ausgegeben.

Ich habe den Vorschlag von Björn Pollex müde gemacht und die notwendigen Änderungen vorgenommen, aber jetzt erscheinen keine Bilder

Antworten auf die Frage(2)

Ihre Antwort auf die Frage