выравнивает динамические изображения из нескольких загрузок

У меня есть простая форма с загрузкой файла. загрузка файла и поддержка 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, но безрезультатно.


person Meysam Te.    schedule 04.06.2013    source источник
comment
я тоже попробовал f:param, результат тот же, и моя проблема все еще существует   -  person Meysam Te.    schedule 04.06.2013
comment
Вы также прочитали связанные ответы сверху вниз и поняли конкретную проблему? Ваш компонент и метод также должны быть изменены и тому подобное.   -  person BalusC    schedule 04.06.2013
comment
Спасибо. Я нашел проблему. когда мы используем el2 и передаем idx в качестве параметра метода, jsf использует это во время рендеринга (PhaseId.RENDER_RESPONSE). и при втором вызове метода параметр всегда равен idx = 0 (не знаю почему!).   -  person Meysam Te.    schedule 04.06.2013
comment
Эта часть уже была объяснена в связанных ответах. Почему именно вы не удосужились их прочитать?   -  person BalusC    schedule 04.06.2013