0

我有以下数据表:

<p:dataTable id="persons" styleClass="hide-column-names personTable"
            value="#{personListDisplayerBean.allPersonsModel}" var="person"
            paginator="true" rows="25"
            paginatorTemplate="{CurrentPageReport}  {FirstPageLink} {PreviousPageLink} {PageLinks} {NextPageLink} {LastPageLink} {RowsPerPageDropdown}"
            rowsPerPageTemplate="5,10,25,50,100"
            selection="#{personDetailsDisplayerBean.selectedPerson}"
            filteredValue="#{personListDisplayerBean.filteredPersons}"
            selectionMode="single" widgetVar="personTable">

            ...
            ...

            <p:column styleClass="person-list-image-column">
                <p:graphicImage styleClass="thumbnail"
                    value="#{personListDisplayerBean.getImageForPerson(person)}" />

            </p:column>
           ...
           ...

</p:dataTable>

(缩短了一点)

现在我的问题是:方法getImageForPerson被调用了两次。原因在这篇文章中解释:

使用 p:graphicImage 和 StreamedContent 显示来自数据库的动态图像

第一次调用一切都很好,但第二次调用我只收到一个 null 作为参数...

该方法本身看起来像这样:

String fileName = person.getObjectGUID();
File f = new File(fileName + ".jpg");
FileInputStream inputStream;
try {
   inputStream = new FileInputStream(f);
} catch (FileNotFoundException e) {
   return new DefaultStreamedContent();
}
stream = new DefaultStreamedContent(inputStream,"image/jpg");
return stream;

为什么 JSF 在第二次调用 Method 时给我一个 null 作为参数?我能以某种方式克服这个问题吗?

提前致谢 :)

4

0 回答 0