Вы всегда можете создать класс-оболочку для org.apache.commons.net.ftp.FTPFile
, который должен быть идентифицируемым и содержать экземпляр FTPFile.В этом случае вы можете просто использовать коллекцию этих оболочек, представить их в DataTable и выполнить действие над ними.
public class FTPFileWrapper implements Serializable {
private static final long serialVersionUID = 3653846184126846410L;
private Integer id;
private FTPFile ftpFile;
public FTPFileWrapper(Integer id, FTPFile ftpFile) {
this.id = id;
this.ftpFile = ftpFile;
}
//getters and setters
}
И вам нужно создать fTPBean.actualFolderContent
коллекцию FTPFileWrapper и заполнитьесли с каким-то уникальным значением id
(это может быть просто int
приращение переменной) и FTPFile, который вы хотите отобразить в вашем пользовательском интерфейсе.
И чтобы показать имя вашего файла, вы можете получить к нему доступ черезfile
следующим образом:
<p:column headerText="File/Folder">
<h:outputText value="#{file.ftpFile.name}" />
</p:column>
или измените оболочку, чтобы получить прямой доступ к ее полям файла следующим образом:
public class FTPFileWrapper implements Serializable {
...
public String getFileName() {
if (ftpFile != null) {
return ftpFile.getName();
}
return "N/A";
}
}
и
<p:column headerText="File/Folder">
<h:outputText value="#{file.fileName}" />
</p:column>