У меня есть простая форма с загрузкой файла. загрузка файла и поддержка bean-компонента работают отлично, но я хочу отображать загруженные изображения после загрузки. Я использовал ui:repeat но только первое изображение повторяется для всех загрузок! Я использовал несколько 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
, но безрезультатно.
<p:graphicImage>
с DefaultStreamedContent в пользовательском интерфейсе: повтор? а>. В двух словах: вместо этого используйте<f:param>
. - person BalusC   schedule 04.06.2013