Представление содержимого файла (pdf / tiff / png) в калитке 1.5 - PullRequest
2 голосов
/ 08 ноября 2011

Итак, я столкнулся с проблемой, которую не могу решить самостоятельно.

Я хочу представить файл в iFrame. Файл может быть в формате PDF, PNG или TIFF, и я не знаю, какой заранее. Файлы pdf и tiff должны быть представлены с различными действиями (печать, сохранение на диск и т. Д.) - для этого я использую подключаемые модули браузера.

Что я делаю, так это;
Java:

public ContentPanel(String id, final Atatchment attachment) {
    super(id);

    ResourceReference rr = new ResourceReference(attachment.getName()) {
        private static final long serialVersionUID = 1L;

        @Override
        public IResource getResource() {
            return new ByteArrayResource(attachment.getMimeType(), attachment.getByteArray());
        }
    };

    WebMarkupContainer wmc = new WebMarkupContainer("myIframe");
    wmc.add(new AttributeModifier("src", (String) urlFor(rr, null)));
    add(wmc);
}


HTML:

<body>
    <wicket:panel>
        <iframe wicket:id="myIframe" src=""></iframe>
    </wicket:panel>
</body>

В результате получается 404 («Запрошенный ресурс недоступен»). Дело в том, что когда некоторые файлы были кэшированы, они были представлены так, как я хочу.

Заранее спасибо!
Олле

1 Ответ

2 голосов
/ 09 ноября 2011

Проблема заключалась в том, что ресурс не был зарегистрирован в приложении. Просто добавлено:

    if (rr.canBeRegistered()) {
        getApplication().getResourceReferenceRegistry().registerResourceReference(rr);
    }

И это работает!

...