我试图显示面板,让用户可以看到项目类别(显示为图像)的名单和点击它们可以在类别中浏览产品(将显示图像)
为了显示项目类别,我使用的用户界面:重复河畔支撑豆CALSS下面是我的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>
而Managed Bean的部分代码
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()));
}
现在我的问题,如果我不取消注释“的getData”的“imageList.add(BAOS)”,将不显示图像。 现在我真的想知道“UI:重复”是如何工作的,因为“图像列表”中包含的图片,我可以根据需要在任何方法保存相同。 如果我指定的固定数目(例如:“imageList.get(0)”)在“的getData”方法然后相同的图像是示出多次。 在哪里,如果我把“imageNum”没有“imageList.add(BAOS)”扔错误“错误流动态资源”
我累了比约恩博动的建议,并进行必要的修改,但现在不显示图像