如何从 JSF 的 /WEB-INF 文件夹中获取属性文件?
Posted
技术标签:
【中文标题】如何从 JSF 的 /WEB-INF 文件夹中获取属性文件?【英文标题】:How to get properties file from /WEB-INF folder in JSF? 【发布时间】:2011-01-09 12:13:00 【问题描述】:我在/WEB-INF
中有一些属性文件。我想将它加载到 JSF 托管 bean 中。有什么办法吗?
【问题讨论】:
【参考方案1】:使用 ExternalContext#getResource()
或 ExternalContext#getResourceAsStream()
在其中传递 webcontent-relative 路径。
例如:
ExternalContext externalContext = FacesContext.getCurrentInstance().getExternalContext();
Properties properties = new Properties();
// ...
properties.load(externalContext.getResourceAsStream("/WEB-INF/file.properties"));
这在幕后代表ServletContext#getResource()
/getResourceAsStream()
。
另见:
Where to place and how to read configuration resource files in servlet based application?【讨论】:
能否给我一个提示,ExternalContext 的子类是哪些类(ExternalContext 是抽象的)或者从哪里获取 externalContext 对象? @LukaszCzerwinski : ExternalContext externalContext = facesContext.getExternalContext();【参考方案2】: String path="/WEB-INF/list.properties";
InputStream is=FacesContext.getCurrentInstance().getExternalContext().getResourceAsStream(path);
InputStreamReader r = new InputStreamReader(is);
BufferedReader br = new BufferedReader(r);
【讨论】:
【参考方案3】:把它放在WEB-INF/classes 中。这是类路径的一部分。
【讨论】:
...顺便说一句,ExternalContext#getResource()
方法不需要。以上是关于如何从 JSF 的 /WEB-INF 文件夹中获取属性文件?的主要内容,如果未能解决你的问题,请参考以下文章