java - 无法从 JSF 读取 Java 文件

标签 java jsf

我的应用程序的目录结构如下:-

My App
++++++ src
++++++++com
++++++++++readProp.java
++++++++resource
++++++++++message.properties

我正在尝试按如下方式读取文件:-

public Static final string FilePath="resource.message.properties"

这里是读取文件的代码。我尝试使用以下两种技术但没有用...

File accountPropertiesFile = new File(FacesContext.getCurrentInstance() 
.getExternalContext().getRequestContextPath() 
+ FilePath); 

properties.load(externalContext.getResourceAsStream(FilePath));

但是在阅读 Bean 类时没有任何成功。请帮忙...

最佳答案

您的属性文件位于类路径中。 java.io.File 仅了解本地磁盘文件系统结构。这是行不通的。您需要通过类加载器直接从类路径获取它。

这是一个启动示例:

ClassLoader classLoader = Thread.currentThread().getContextClassLoader();
InputStream input = classLoader.getResourceAsStream("/resources/messages.properties");

if (input != null) {
    Properties properties = new Properties();
    try {
        properties.load(input);
    } finally {
        input.close();
    }
}

关于java - 无法从 JSF 读取 Java 文件,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/6319689/

相关文章:

java - 旋转图形

css - 覆盖 primefaces 主题 - 具有多个彩色行的数据表

JSF 2.X 在两个 xhtml 页面之间传递参数

jsf - ManagedProperty 未注入(inject) @FacesConverter

java - java中的通用列表初始化

java - ScheduledExecutorService 在给定时间段内以给定时间速率执行任务

java - 如何升级我的 MAC OS X 以使用更新的 Java 编译器?

java - Spring Boot Actuator 应用程序无法在 Ubuntu VPS 上启动

jsf - 在 servlet 中注入(inject) OmniFaces ViewScoped bean 时出现 ContextNotActiveException

javascript - 直接从 Javascript 渲染 JSF 组件