我有一个带有fileupload的简单表单。文件上传和支持bean工作正常但我想在上传后显示上传的图像。我用过ui:重复但只有第一张图片重复上传! 我使用了多个p:graphicImage而不是ui:repeat,结果绝对正确。但我必须使用ui:repeat或p:galleria。
这是ui:重复使用错误的结果
<ui:repeat value="#{applicationImagesBean.screenidx}" var="idx">
<p:graphicImage value="#{applicationImagesBean.getScreen(idx)}" height="320"/>
</ui:repeat>
这里有多个p:graphicImage,这是正确的,但它不是我想要的
<p:graphicImage value="#{applicationImagesBean.getScreen(0)}" height="320"/>
<p:graphicImage value="#{applicationImagesBean.getScreen(1)}" height="320"/>
<p:graphicImage value="#{applicationImagesBean.getScreen(2)}" height="320"/>
请注意,screenidx是一个包含0,1,2,3,...作为整数的简单列表
public StreamedContent getScreen(Integer idx) {
try {
File file = screenFiles.get(idx);
return new DefaultStreamedContent(new FileInputStream(file), null, "" + idx.intValue());
} catch (Exception e) {
e.printStackTrace();
}
return null;
}
两个样本中的我在getSceen上有一个断点,idx已经正确发送到getScreen但结果却不同。
我累了cache = false
和timestamp
参数,但没有结果。