Изображения, ссылающиеся на CSS с Wicket для сотен изображений - PullRequest
4 голосов
/ 12 марта 2011

Как и в других хороших сообщениях, мы можем использовать что-то вроде этого для одного изображения:

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

Но что, если у нас есть 100 изображений, которыми нужно поделиться? Чтобы отобразить их 1 на 1 на самом деле это не так. Есть ли хороший способ как автоматически монтировать все образы одного каталога?

Если нет, я подумываю о том, чтобы написать некоторую поддержку для автоматического монтирования mountSharedResource в цикле для всех изображений, находящихся в конкретном каталоге изображений. Но на самом деле я не уверен, что это верное направление.

Спасибо.

Ответы [ 3 ]

2 голосов
/ 12 марта 2011

Ну, я решил проблему следующим образом:

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), но для ресурсов ничего (если я правильно понимаю).

0 голосов
/ 18 июня 2011

Я не уверен, что это то, что вам нужно, но я нашел следующий фрагмент, чтобы помочь мне с подобной проблемой:

getMarkupSettings().setAutomaticLinking(true);

Я узнал об этом на Wiki Wicket .

0 голосов
/ 13 марта 2011

Это снизит производительность вашего приложения. Лучше смонтировать один общий ресурс для всех изображений, а затем в зависимости от переданных параметров запроса загрузить разные изображения и передать их обратно в ответ.

...