使用Wicket在CSS中引用数百张图像的图像

从另一个不错的帖子,我们可以使用这样的单个图像:

mountSharedResource("/images/logo.gif", new ResourceReference(ImageScope.class, "logo.gif").getSharedResourceKey());

但是,如果我们需要共享100张图片怎么办?要逐一映射它们实际上是没办法的.有没有一些很好的方法如何实现自动挂载1个目录的所有图像?

如果没有,我正在考虑为驻留在具体图像目录中的所有图像自动编写一些支持在一个循环中执行mountSharedResource.但实际上我不确定这是否是正确的方向.

谢谢.

最佳答案 好吧,我解决了这个问题:

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),但资源没有(如果我理解的话).

点赞