I have some properties file in /WEB-INF
. And I want to load it in a JSF managed bean. Is there any way to do that?
可以将文章内容翻译成中文,广告屏蔽插件可能会导致该功能失效(如失效,请关闭广告屏蔽插件后再试):
问题:
回答1:
Use either ExternalContext#getResource()
or ExternalContext#getResourceAsStream()
wherein you pass the webcontent-relative path.
E.g.:
ExternalContext externalContext = FacesContext.getCurrentInstance().getExternalContext();
Properties properties = new Properties();
// ...
properties.load(externalContext.getResourceAsStream("/WEB-INF/file.properties"));
This delegates under the covers to ServletContext#getResource()
/getResourceAsStream()
.
See also:
- Where to place and how to read configuration resource files in servlet based application?
回答2:
Put it in WEB-INF/classes. That is part of the classpath.
回答3:
String path="/WEB-INF/list.properties";
InputStream is=FacesContext.getCurrentInstance().getExternalContext().getResourceAsStream(path);
InputStreamReader r = new InputStreamReader(is);
BufferedReader br = new BufferedReader(r);