嵌入在vaadin中的本地htm文件

log*_*ame 8 html embed vaadin

我是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);
Run Code Online (Sandbox Code Playgroud)

我已经尝试在我的网络浏览器中调试,复制和过去str变量的内容我可以访问该文件,浏览器正确显示它.我也尝试过FileResource和ClassResource.当我用http://www.somewebpage.com/替换字符串时,它可以工作,但不能使用上面的代码.怎么实现呢?

n0r*_*m1e 7

根据具体情况,您可以在Vaadin中选择5种不同的资源:ExternalResource,ThemeResource,FileResource,ClassResource和StreamResource.如果您希望将文件与应用程序捆绑在一起,您可以:

  • 使用ExternalResource(将您的资源称为http:// host:port/etc/etc),或

  • 使用ThemeResource(通过其通往WebContent/VAADIN/themes/yourtheme目录的相对路径引用您的资源,通常放置图标和样式)

我会选择第二种方法,因为它可以让你找不到上下文网址.

了解更多关于资源在这里这里.