Структура каталогов калитки
Вопрос
Я пытаюсь выяснить структуру каталогов калитки. Я совсем не понимаю! Допустим, я хочу загрузить изображение с изображениями / 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, и она работает