2012-07-20 119 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」);

它列出了文件名,而不是資源,但它是最好的方法,那麼我使用的問題。