Stavo cercando di visualizzare un pannello dove l'utente può visualizzare un elenco di voci di categoria (visualizzato come immagini) e facendo clic si possono visualizzare i prodotti all'interno della categoria (verranno visualizzate le immagini)Come utilizzare <p: graphicImage> con DefaultStreamedContent in ui: repeat?
Per visualizzare la categoria oggetto, i utilizzata l'interfaccia utente: ripetere nad il supporto calss di fagioli Di seguito è riportato il mio codice xhtml
<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>
E le parti di codice Bean Managed
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()));
}
Ora il mio problema se non rimuovere il commento esimo e 'imageList.add (baos)' in 'getData', le immagini non vengono visualizzate. Ora voglio davvero sapere come funziona 'ui: repeat', dato che 'imageList' contiene le immagini e io posso salvare lo stesso se richiesto in uno dei due metodi. Se si specifica un numero fisso (es: 'imageList.get (0)') nel metodo 'getData', la stessa immagine viene mostrata più volte. Dove se metto il 'imageNum' senza 'imageList.add (baos)' genera errore 'Errore nella risorsa dinamica di streaming'
Ho stancato il suggerimento di Bjorn Pollex e ho apportato le modifiche necessarie ma ora le immagini non appaiono
Non fa riferimento il variabile loop ('img' nel tuo caso) all'interno del tuo' '. Il tuo 'getImages' dovrebbe restituire un' Elenco ', e il tuo' 'dovrebbe avere' value = "# {img}" '. –