好吧,我在我的ManagedBean中创建了一个“动作”来将图片添加到List中,看看下面的动作:
public void novaFoto(FileUploadEvent event) {
uploadsFotos.add(event.getFile());
}
现在,我必须执行以下操作:当用户单击按钮(“删除图片”)时,我必须从列表中删除此图片,但是如果这不是FileUploadEvent,我怎样才能获得UploadedFile,只是一个简单的ActionEvent ?
我的ideia是这样的(但如果我将使用commandButton触发此操作,我怎么能传递FileUploadEvent):
public void removerFoto(FileUploadEvent event) {
for(UploadedFile up : uploadsFotos){
if (up.getFileName().equals(event.getFile().getFileName()))
uploadsFotos.remove(up);
}
}
答案 0 :(得分:0)
这取决于您希望如何向用户显示列表。
如果使用数据表,则可以使用迭代var来处理删除操作。这是一个例子:
<h:dataTable value="#{fileBean.files}" var="file" id="files">
<h:column>
<h:inputText value="#{file.name}"/>
<h:commandButton value="delete" action="#{fileBean.delete(file)}">
<f:ajax render="@form"/>
</h:commandButton>
</h:column>
</h:dataTable>
这在你的bean中:
public void delete(UploadedFile file) {
files.remove(file);
}