gpt4 book ai didi

java - 如何在运行时从 JSF Controller 访问位于 "src/main/resources"文件夹中的 css 文件

转载 作者:太空宇宙 更新时间:2023-11-04 07:49:16 25 4
gpt4 key购买 nike

我需要能够从后端 java Controller 访问存储在 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)

如何在 Controller 中检索这些文件?

我尝试了这个,但没有成功,同样的错误:

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");
// ...

另请参阅:

关于java - 如何在运行时从 JSF Controller 访问位于 "src/main/resources"文件夹中的 css 文件,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/14757975/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com