Локальный htm-файл, встроенный в vaadin - PullRequest
8 голосов
/ 07 декабря 2011

Я новичок в vaadin, и мне удалось как-то запустить приложение. Теперь у меня есть файл help.htm html, содержащий советы по использованию приложения. Я поместил файл help.htm в WEB-каталог своего проекта, чтобы иметь доступ к нему в контексте vaadin. Я пытался получить к нему доступ таким образом:

String str = "file:/" + "/" + application.getContext().getBaseDirectory() + "/help.htm";
URL url = new URL(str);
Embedded browser = new Embedded("Help", new ExternalResource(url));
browser.setType(Embedded.TYPE_BROWSER);                   
tabsheet.addComponent(browser);

Я попытался отладить, скопировать и пропустить содержимое переменной str в моем веб-браузере, я могу получить доступ к файлу, и браузер отображает его правильно. Я также пытался с FileResource и ClassResource. Также, когда я заменяю строку на http://www.somewebpage.com/, она работает, но не с кодом выше. Как этого добиться?

1 Ответ

7 голосов
/ 08 декабря 2011

В Vaadin можно выбрать 5 различных ресурсов в зависимости от обстоятельств: ExternalResource, ThemeResource, FileResource, ClassResource и StreamResource.Если вы хотите, чтобы файл был связан с вашим приложением, вы можете:

  • использовать ExternalResource (ссылаясь на ваш ресурс как http : // host: port/ etc / etc) или

  • используйте ThemeResource (ссылаясь на ваш ресурс через его относительный путь к каталогу WebContent / VAADIN / themes / yourtheme, где вы обычно размещаете значки и стили)

Я бы выбрал второй подход, поскольку он освобождает вас от необходимости узнать контекстный URL.

Подробнее о ресурсах здесь и здесь .

...