Java 如何获取Vaadin资源路径的URL?

Java 如何获取Vaadin资源路径的URL?,java,eclipse,vaadin,vaadin7,Java,Eclipse,Vaadin,Vaadin7,我使用Eclipse+Vaadin框架 首先,我将图像保存到WEB-INF文件夹中。 然后我将这个图像加载到FileResource变量中,创建图像变量,然后将图像变量添加到布局中 图像资源的页面URL如下所示: 如何获取该格式的URL以供外部使用 变量basepath返回的本地路径:..../WEB-INF/qwerty1.png String str = (String) VaadinService.getCurrent().getBaseDirectory().

我使用Eclipse+Vaadin框架

首先,我将图像保存到WEB-INF文件夹中。 然后我将这个图像加载到FileResource变量中,创建图像变量,然后将图像变量添加到布局中

图像资源的页面URL如下所示:

如何获取该格式的URL以供外部使用

变量basepath返回的本地路径:..../WEB-INF/qwerty1.png

String str = (String) VaadinService.getCurrent().getBaseDirectory().
                       getAbsolutePath() +"/WEB-INF/qwerty1.png";

File temp = new File(str);
FileOutputStream fos = new FileOutputStream(temp);
fos.write(os.toByteArray());
fos.flush();
fos.close();

String basepath = VaadinService.getCurrent().getBaseDirectory().
                   getAbsolutePath() +"/WEB-INF/qwerty1.png";
FileResource resource = new FileResource(new File(basepath));
Image image2 = new Image("Image from file", resource);
addComponent(image2);

如果将文件放在…src/main/webapp/VAADIN/image.png中,则应使用例如localhost:8080/VAADIN/image.png来获取该文件。

如果将文件放在…src/main/webapp/VAADIN/image.png中,例如,可以使用localhost:8080/VAADIN/image.png使用它。

您最好使用主题资源,并将图像放在您的VAADIN主题文件夹yourproject/src/main/webapp/VAADIN/themes/yourtheme中。使用新主题meresourceqwerty1.png引用它;我能做到。但问题是,我无法获得这个图片的链接以供外部使用,例如在其他网站上用作图片。亚历杭德罗是对的。webapp文件夹用于存放静态资源。这也是放置HTML或JSP文件的地方。不过,您不需要使用子文件夹VAADIN来完成此操作。谢谢!!你最好使用主题资源,把你的图像放在你的Vaadin主题文件夹yourproject/src/main/webapp/Vaadin/themes/yourtheme中。使用新主题meresourceqwerty1.png引用它;我能做到。但问题是,我无法获得这个图片的链接以供外部使用,例如在其他网站上用作图片。亚历杭德罗是对的。webapp文件夹用于存放静态资源。这也是放置HTML或JSP文件的地方。不过,您不需要使用子文件夹VAADIN来完成此操作。谢谢!!它的作品。