путь изображения калитки без перезаписи - PullRequest
1 голос
/ 24 июня 2011

Я пытаюсь загрузить и показать изображения. Я получаю файл, пишу его в docroot сервера приложений Glassfish, затем

    Image image = new Image("myimage","images/task.gif");

Но я получаю <img wicket:id="myimage" src="resources/wickcat.MyPage/images/task.gif" />

Есть ли способ, которым калитка не переписывает мой путь src? Даже когда я использую http: // .... начиная с src, он пишет resources / wickcat.MyPage / http: // ..., что не имеет никакого смысла. Мне просто нужно написать "images / task.gif". Есть идеи?

Ответы [ 2 ]

6 голосов
/ 25 июня 2011

Есть два способа сделать это.

  1. Использовать <img src="images/task.gif" />.Это если вам не нужна ссылка на компонент в классе.

  2. Используйте ContextImage image = new ContextImage("myimage", "images/task.gif");.Если вы используете компонент ContextImage, источник будет относиться к корню контекста, вы даже можете ввести модель в качестве относительного пути к изображению.

1 голос
/ 26 июня 2011

Класс Image предполагает, что изображение является ресурсом, расположенным в пути к классам.

Вы можете использовать WebMarkupContainer с SimpleAttributeModifier:

WebMarkupContainer img = new WebMarkupContainer("myimage")
    .add(new SimpleAttributeModifier("src", "/images/task.gif"));

.строка как есть, так что вы имеете полный контроль.

Если она используется несколько раз в приложении, я бы порекомендовал вам создать компонент, инкапсулирующий это поведение.Что-то вроде

public class MyImage extends WebMarkupContainer {
    public MyImage(String id, String path) {
        add(new SimpleAttributeModifier("src", path));
    }
}
...