Структура каталогов калитки - PullRequest
3 голосов
/ 11 сентября 2009

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

Ответы [ 3 ]

7 голосов
/ 13 сентября 2009

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

Таким образом, если ваш SomePage extends 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!), И даже автоматически обрабатывает кэширование.

4 голосов
/ 12 сентября 2009

Вы можете создать папку с изображениями прямо в корне вашего проекта. т. е. ваш военный архив должен содержать 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"));
   }
}
0 голосов
/ 11 сентября 2009

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

...