0

我创建了一个 java maven web 应用程序。现在我的问题是我必须使用资源包或属性类访问属性文件。但是这个属性文件位于 webapp/resources 文件夹中,即与我的 js 和 css 文件位于同一目录中。

我有这个实用方法,但如果需要,我可以编写新的:

public static ResourceBundle getBundle(String baseName, String absolutePath) {
    File file = new File(absolutePath);
    ResourceBundle bundle = null;
    try {
        URL[] urls = { file.toURI().toURL() };
        ClassLoader loader = Thread.currentThread().getContextClassLoader();
        bundle = ResourceBundle.getBundle(baseName, Locale.getDefault(), loader);
    } catch (MalformedURLException e) {
    }
    return bundle;
}

我的项目结构:

-project

 -------src

   --------main
           ---------java
           ---------resources
           ---------webapp
                    ----------resources
                              -----------app.properties
                              -----------script.js
4

3 回答 3

1

您的属性文件似乎与 Web 应用程序根目录相关。在这种情况下,您可以在 ServletContext 中使用 getResource()

于 2013-03-28T09:21:39.987 回答
0

您可以向自己发出 HttpUrlConnection (mydomain/myapp/resources/app.properties) 但我会说这是一个丑陋的解决方案

更常见的方法是将您的 app.properties 重新定位到您的类路径中(例如:src/main/resources)。那么如果你使用Spring,你可以使用ClasspathResource。或者你可以阅读这篇文章:How to really read text file from classpath in Java

请记住,将 app.properties 放在那里可能意味着您的所有用户都能够阅读 app.properties

于 2013-03-28T09:22:31.257 回答
0

我终于通过将我的 webapp/resources 文件夹添加到类路径来让它工作。将其添加到类路径后,我们可以简单地这样做 -

ResourceBundle bundle = ResourceBundle.getBundle(bundleName);
于 2013-03-29T08:53:54.490 回答