![](/img/trans.png)
[英]How to access a resource file in src/main/resources/ folder in Spring Boot
[英]How can I access a css file located in my “src/main/resources” folder from my JSF controller at runtime
我需要能够从后端Java控制器访问存储在src / main / resources / styles下的Web应用程序的css文件。 我想使用它们来通过iText创建PDF输出。
换句话说,我想做这样的事情:
CssFile cssFile1 = XMLWorkerHelper.getCSS(new FileInputStream("src/main/resources/styles/my.css"));
但是,由于接收到如下异常,我显然没有正确处理此问题:
java.io.FileNotFoundException: styles\standard.css (The system cannot find the path specified)
如何在控制器中检索这些文件?
我试过了,但是没有用,同样的错误:
String rcp = econtext.getRequestContextPath();
CssFile cssFile1 = XMLWorkerHelper.getCSS(new FileInputStream(rcp + "src/main/resources/styles/my.css"));
FileInputStream
在本地磁盘文件系统上运行,并且所有相对路径都相对于当前工作目录,该目录是在启动JVM时即打开的本地磁盘文件系统文件夹。 这绝对不是src/main/resources
文件夹的根。
鉴于/src/main/resources
可识别为类路径资源根目录的Maven文件夹结构,那么您只需要通过ClassLoader#getResourceAsStream()
将其作为类路径资源获取即可。
InputStream input = getClass().getResourceAsStream("/styles/standard.css");
// ...
或者,如果该类可能被打包在另一个类加载器加载的JAR中。
InputStream input = Thread.currentThread().getContextClassLoader().getResourceAsStream("styles/standard.css");
// ...
那是因为JSF是一个Web应用程序。 现在将styles/my.css
移至WEB-INF/styles/my.css
确保您在控制器中访问的文件是WebApp的一部分
现在您可以使用
XMLWorkerHelper.class.getResourceAsStream("styles/my.css")
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.