在 Vaadin 7.6 和 Spring 引导项目中读取图像
Read image in a Vaadin 7.6 and Spring Boot project
我正在尝试使用 Vaadin 7.6 和 Spring Boot 编写项目代码。我想在 ma 页面中显示图像。为此,我阅读了 Vaadin 的书,我在其中找到了:
// Find the application directory
String basepath = VaadinService.getCurrent()
.getBaseDirectory().getAbsolutePath();
// Image as a file resource
FileResource resource = new FileResource(new File(basepath + "/WEB-INF/images/image.png"));
// Show the image in the application
Image image = new Image("Image from file", resource);
但是有一个问题。使用 Spring 引导,没有任何 WEB-INF 文件夹。我有那些文件夹:
- 资源
- resources/static
- resources/templates
我已经创建了目录 resources/static/images
并保存了一张图片。之后,我尝试了这样的代码:
String basePath = VaadinService.getCurrent().getBaseDirectory().getAbsolutePath();
FileResource resource = new FileResource(new File(basePath + "/images/telecaster.jpg"));
Image telecaster = new Image("Telecaster", resource);
但是当我尝试 ma 页面时出现异常:java.io.FileNotFoundException: /private/var/folders/nm/kv40tr650llcmk6rssnxzt900000gn/T/tomcat-docbase.5908407388863057264.8080/images/telecaster.jpg(没有这样的文件或目录)。
我的图像部署得很好,因为当我尝试 URL http://localhost:8080/images/telecaster.jpg 时,我得到了图像。
如何从我的 Vaadin 源代码访问图像(和任何文件类型)?
或者,您可以通过 ThemeResource class 加载图像。 class 默认在标准 VAADIN/themes/{themeName} 目录下查找资源。以下是代码示例:
new ThemeResource("images/admin-user.jpg")
其中图像是 VAADIN/themes/{themeName} 目录下的一个目录。
我找到了解决办法。
我创建目录 src/main/WEB-INF/images
并将文件夹 WEB-INF 定义为资源文件夹。
之后我写了一段关于资源的经典代码:
String imagePath = IdeaxBoxUI.class.getClassLoader().getResource("images/telecaster.jpg").getPath();
FileResource resource = new FileResource(new File(imagePath));
Image telecaster = new Image("Telecaster", resource);
我正在尝试使用 Vaadin 7.6 和 Spring Boot 编写项目代码。我想在 ma 页面中显示图像。为此,我阅读了 Vaadin 的书,我在其中找到了:
// Find the application directory
String basepath = VaadinService.getCurrent()
.getBaseDirectory().getAbsolutePath();
// Image as a file resource
FileResource resource = new FileResource(new File(basepath + "/WEB-INF/images/image.png"));
// Show the image in the application
Image image = new Image("Image from file", resource);
但是有一个问题。使用 Spring 引导,没有任何 WEB-INF 文件夹。我有那些文件夹:
- 资源
- resources/static
- resources/templates
我已经创建了目录 resources/static/images
并保存了一张图片。之后,我尝试了这样的代码:
String basePath = VaadinService.getCurrent().getBaseDirectory().getAbsolutePath();
FileResource resource = new FileResource(new File(basePath + "/images/telecaster.jpg"));
Image telecaster = new Image("Telecaster", resource);
但是当我尝试 ma 页面时出现异常:java.io.FileNotFoundException: /private/var/folders/nm/kv40tr650llcmk6rssnxzt900000gn/T/tomcat-docbase.5908407388863057264.8080/images/telecaster.jpg(没有这样的文件或目录)。 我的图像部署得很好,因为当我尝试 URL http://localhost:8080/images/telecaster.jpg 时,我得到了图像。
如何从我的 Vaadin 源代码访问图像(和任何文件类型)?
或者,您可以通过 ThemeResource class 加载图像。 class 默认在标准 VAADIN/themes/{themeName} 目录下查找资源。以下是代码示例:
new ThemeResource("images/admin-user.jpg")
其中图像是 VAADIN/themes/{themeName} 目录下的一个目录。
我找到了解决办法。
我创建目录 src/main/WEB-INF/images
并将文件夹 WEB-INF 定义为资源文件夹。
之后我写了一段关于资源的经典代码:
String imagePath = IdeaxBoxUI.class.getClassLoader().getResource("images/telecaster.jpg").getPath();
FileResource resource = new FileResource(new File(imagePath));
Image telecaster = new Image("Telecaster", resource);