我需要将使用java类中的方法生成的文件列表显示到Tapestry中的tml文件中

我需要将使用java类中的方法生成的文件列表显示到Tapestry中的tml文件中,java,tapestry,tml,Java,Tapestry,Tml,我有一个java类,其中有一个方法-getFiles(),它打印目录中的文件列表。这是密码 @Property private String[] filesInDir; public void getFiles(String path){ File aDirectory = new File("C://Users/A634682/report1/src/main/java/com/example/report1/reports2"); // get a list

我有一个java类,其中有一个方法-getFiles(),它打印目录中的文件列表。这是密码

@Property
 private String[] filesInDir;

public void getFiles(String path){
      File aDirectory = new File("C://Users/A634682/report1/src/main/java/com/example/report1/reports2");

        // get a listing of all files in the directory
        filesInDir = aDirectory.list();

        // sort the list of files (optional)
        // Arrays.sort(filesInDir);

        System.out.println("File list begins here >>>>>");
        // have everything i need, just print it now
        for ( int i=0; i<filesInDir.length; i++ )
        {
          System.out.println( "file: " + filesInDir[i] );
        }
      }
@属性
私有字符串[]文件索引;
公共void getFiles(字符串路径){
文件aDirectory=new文件(“C://Users/A634682/report1/src/main/java/com/example/report1/reports2”);
//获取目录中所有文件的列表
filesInDir=aDirectory.list();
//对文件列表进行排序(可选)
//Arrays.sort(filesInDir);
System.out.println(“文件列表从这里开始>>>>”;
//有我需要的一切,现在就打印出来

对于(int i=0;i您可以将一个简单的
t:Loop
组件与您的
filesInDir
一起用作源代码。这里可以找到一个示例:


在开始渲染之前,您需要初始化属性,即在中。

我这样做了。在tml文件中,我使用了grid:但现在我得到的值为False。打印的行数等于我在文件夹中的文件数。但我无法得到文件名。如何获得grid中每行的实际字符串值?我有一个简单的String数组作为源。
t:Grid
是比
t:Loop
更高级的组件,因为您只提供了
source
,而没有提供
model
参数,它为
String
类自动创建了一个新的
BeanModel
,并且它可以自动检测的唯一属性是它的
String\isEmpty()
。因此,对于该唯一属性
t:Grid
创建了唯一的列和显示值
#isEmpty
,它是
false
,因为您的所有字符串都不是空的。您可以阅读有关网格的更多信息。