从List <uploadedfile> </uploadedfile>中删除一个UploadedFile

时间:2013-11-02 13:17:37

标签: java jsf

好吧,我在我的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);
        }
    }

1 个答案:

答案 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);
}