正如另一篇不错的文章中所述,我们可以对一张单张图像使用类似的内容:
mountSharedResource("/images/logo.gif", new ResourceReference(ImageScope.class, "logo.gif").getSharedResourceKey());
但是如果我们需要共享 100 张图像怎么办?将它们一一映射实际上是不可能的。有没有一些好方法如何实现自动挂载 1 个目录的所有图像?
如果没有,我正在考虑编写一些支持,自动为驻留在具体图像目录中的所有图像循环执行 mountSharedResource 。但实际上我不确定这是否是正确的方向。
Thanks.
嗯,我是这样解决这个问题的:
private void mountResources(Class clazz, String directory) {
java.net.URL url = clazz.getResource(clazz.getSimpleName() + ".class");
File[] files = new File(url.getPath()).getParentFile().listFiles();
for (int i=0; i< files.length; i++) {
String fileName = files[i].getName();
if (!fileName.endsWith("class")) {
mountSharedResource("/" + directory + "/" + fileName, new ResourceReference(clazz, fileName).getSharedResourceKey());
}
}
}
并像这样使用它:
mountResources(ImagesScope.class, "images");
mountResources(FontsScope.class, "fonts");
mountResources(JsScope.class, "js");
但令人难以置信的是,Wicket 内部并不支持它。我很惊讶。为了安装整个包的可书签页面,我们有 mount(path, packageName),但对于资源没有任何东西(如果我理解正确的话)。
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)