2012-07-20 108 views
1

我正在写wicket webapp。我想:资源列表

  1. 列表中的所有资源 - videoPreview在文件夹
  2. 预览它
  3. 添加链接在主预览面板中显示。

我看了很多,看资源的例子,但似乎无法理解smthg。我写这样有趣的代码:

 RepeatingView rv = new RepeatingView("showVideo"); 
    add(rv); 
    File vidPrevDir = (new File("data/catalog/"+product+"/videoPreview")); 
    File[] list = vidPrevDir.listFiles(); 

    for (File file : list) { 
     final String previewFile = file.getName(); 
     AjaxLink link = new AjaxLink(rv.newChildId()){    
      @Override 
      public void onClick(AjaxRequestTarget target) { 
       container.name="iframe"; 
       container.attrs.clear(); 
       container.attrs.put("class", "viewPanel"); 
       container.attrs.put("allowfullscreen", "yes"); 
       container.attrs.put("src", "http://www.youtube.com/embed/"+previewFile.substring(previewFile.indexOf("___"), previewFile.length()-4)); 
       target.add(container);     
      } 

     }; 
     rv.add(link); 
     link.add(new Image("videoPreview", product+"/videoPreview/"+file.getName())); 
    } 

在应用我调用 getResourceSettings()addResourceFolder( “数据”);。

这是工作,但我觉得不好,当我看到。所以我的问题是如何在wicket中做出这样的事情?也许有资源列表或java.io.File-> wicket.Image转换器?

+0

你关心哪部分代码? – biziclop 2012-07-20 18:28:53

+0

首先我列出目录中的文件,然后我使文件 - >构造文件名 - >图像转换。所以路径被构造两次。我想我必须得到Image by File/URL,它已经存在或我必须直接列出资源。最后一个是可取的,因为我可以移动资源。但是不要想办法列出某些路径中的资源。 – cynepnaxa 2012-07-20 23:58:19

回答

0

我只找到内置方法:

ServletContext的上下文= WicketApplication.get()的getServletContext(); Set productList = context.getResourcePaths(“/ catalog”);

它列出了文件名,而不是资源,但它是最好的方法,那么我使用的问题。