Java 如何在downloadLink中使用wicket StringResourceModel
我有一个可以工作的按钮:Java 如何在downloadLink中使用wicket StringResourceModel,java,wicket,Java,Wicket,我有一个可以工作的按钮: Button options = new Button("sheets", new StringResourceModel("sheets", null)) { private static final long serialVersionUID = 1L; @Override public void onSubmit() { setResponsePage(new Tournament
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));
为什么这个按钮不起作用?我不知道为什么按钮起作用,但DownloadLink不起作用。无论如何,您可以通过将容器组件传递给StringResourceModel来解决问题。像这样的东西应该可以:
new StringResourceModel("sheets", this,null)
我已经开始讨论这个问题了
快速回复:您还没有在任何地方定义属性“表”,这就是它找不到它的原因。是的,为什么在按钮中它可以工作?我已经在属性文件中定义了它,我没有上传到这里。这段代码解决了异常,但链接仍然没有翻译,文件名的名称被覆盖到“sheets”中。包来自哪里?我是说,财产档案在哪里?它是为链接的容器定义的吗?我按照这个示例创建本地化页面:因此属性文件与html和java文件位于同一文件夹中DownloadLink似乎有一个bug。如果我是对的,我将在Wicket issue tracker上打开一个问题。顺便问一下,您希望获得的最终结果是什么?你说那个链接“还没有翻译”是什么意思?是的。我的补丁已经被接受,但我们应该等到下一个版本有修复。好的,谢谢。我希望他们尽快发布新版本:)你好。我希望你的音乐仍在调整。我发现这个问题已经解决,所以我再试一次。我改为1.5.9版,但仍然有负面结果:(.我尝试了新的StringResourceModel(“sheets”,这个,null),新的StringResourceModel(“sheets”,null)和新的ResourceModel(“sheets”),什么都不起作用:(好的,我知道了。现在文件名是localize。问题是我不想要它。我想要本地化下载链接的标签,但仍然不起作用
new StringResourceModel("sheets", this,null)