Вопрос

Я пытаюсь выяснить структуру каталогов калитки. Я совсем не понимаю! Допустим, я хочу загрузить изображение с изображениями / logo.gif или что-то в этом роде. Где я должен разместить папку с изображениями? Пожалуйста, помогите мне с этим! ;)

Это было полезно?

Решение

Wicket способствует продумыванию целых веб-страниц с помощью парадигм ООП, включая обработку ресурсов.

Итак, если ваш SomePage расширяет WebPage находится в пакете myprogram.view.pages , вам, скорее всего, следует добавить изображения и т. д. в myprogram.view.pages .assets ( или другой логический пакет с аналогичным именем ), а затем добавьте изображение в источник SomePage, вызвав

add(new Image("id", new ResourceReference(this.getClass(), "assets/logo.gif")));

Таким образом, вы будете иметь все свои страницы, их компоненты и, конечно, связанные с ними ресурсы в разумной структуре ( я единственный, кто раздражен тем, что люди все еще втискивают все свои CSS-стили в одну огромную таблицу стилей? ) который отделен от всего остального.

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

<wicket:link>
    <img src="images/logo.gif" />
</wicket:link>

прямо в файле разметки. тег wicket: link автоматически свяжет ресурс изображения, указывающий на правильный файл (путь относится к SomePage.class !) и даже автоматически обрабатывает кэширование.

Другие советы

Вы можете создать папку с изображениями прямо в корне вашего проекта. т. е. ваш военный архив должен содержать META-INF, WEB-INF, изображения на корневом уровне. Или в корне папки вашего веб-приложения в контейнере сервлетов. Затем назовите его в своем HTML как

<img src="images/pic1.jpg"/>

Если вы ссылаетесь на изображение из кода Java, вы должны сделать его относительно пути вашего сервлета. Это может быть доступно через контекст сервлета с помощью

class MyPage extends WebPage {
  public MyPage() { 
     final ServletContext ctx = ((WebApplication) getApplication()).getServletContext();
     File imgFile = new File(ctx.getRealPath("/images/pic1.jpg"));
   }
}

В Netbeans он находится в пакетах с исходным кодом tld.domain.project Там вы создаете новую папку с именем images, и она работает

Лицензировано под: CC-BY-SA с атрибуция
Не связан с StackOverflow
scroll top