2012-08-30 15 views
0

我有按鈕,它的工作原理:如何檢票StringResourceModel使用downloadLink

Button options = new Button("sheets", new StringResourceModel("sheets", null)) { 

     private static final long serialVersionUID = 1L; 

     @Override 
     public void onSubmit() { 
      setResponsePage(new TournamentOptionsPage(tournament, table) { 

       private static final long serialVersionUID = 1L; 
      }); 
     } 
    }; 

現在我想用downloadLink更換按鈕:

 add(new DownloadLink("sheets", new AbstractReadOnlyModel<File>() { 
      private static final long serialVersionUID = 1L; 

      @Override 
      public File getObject() { 
       File tempFile; 
       try { 
        tempFile = PdfFactory.createSheets(WicketApplication.getSheetsPath(), 
          tournamentService.getSchedule(table, tournament), table); 
       } catch (Exception e) { 
        e.printStackTrace(); 
        throw new RuntimeException(e); 
       } 
       return tempFile; 
      } 
     }, new StringResourceModel("sheets", null)).setCacheDuration(Duration.NONE).setDeleteAfterDownload(true)); 

但在這裏我有問題,StringResourceModel,當我推鏈接我得到異常:

Caused by: java.util.MissingResourceException: Unable to find property: 'sheets' 
    at org.apache.wicket.Localizer.getString(Localizer.java:239) 
    at org.apache.wicket.Localizer.getString(Localizer.java:170) 
    at org.apache.wicket.model.StringResourceModel.getString(StringResourceModel.java:425) 
    at org.apache.wicket.model.StringResourceModel.getString(StringResourceModel.java:400) 
    at org.apache.wicket.model.StringResourceModel.load(StringResourceModel.java:583) 
    at org.apache.wicket.model.StringResourceModel.load(StringResourceModel.java:182) 
    at org.apache.wicket.model.LoadableDetachableModel.getObject(LoadableDetachableModel.java:119) 
    at org.apache.wicket.markup.html.link.DownloadLink.onClick(DownloadLink.java:151) 
    at org.apache.wicket.markup.html.link.Link.onLinkClicked(Link.java:188) 

爲什麼這不起作用?

+0

快速回復:你有沒有定義你的財產「表」的任何地方,這就是爲什麼它找不到它。 – rotsch

+0

是啊,爲什麼在按鈕的作品?我已經在屬性文件中定義它,我沒有在這裏上傳 – hudi

回答

0

我開了一個問題來討論這個問題

https://issues.apache.org/jira/browse/WICKET-4738

+0

thx有很多問題,所以這是錯誤? – hudi

+0

是的。我的補丁已被接受,但我們應該等待下一個版本的修復。 –

+0

好thx很多。我希望他們儘快發佈新版本:) – hudi

0

我不知道Button爲什麼會起作用,但DownloadLink沒有。無論如何,你可以解決你的問題傳遞容器組件到StringResourceModel。這樣的事情應該是確定:

new StringResourceModel("sheets", this,null) 
+0

hm這段代碼解決異常,但鏈接仍然沒有被翻譯,並且文件名的名字被覆蓋爲「表」 – hudi

+0

該包來自哪裏?我的意思是,屬性文件在哪裏?它是否被定義爲鏈接的容器? –

+0

我遵循這個例子來創建本地化頁面:http://www.wicket-library.com/wicket-examples/pub2/?0所以屬性文件在HTML和Java文件相同的文件夾 – hudi