I have a collection of images packaged in my WAR and I depict them in a using . The images are located in
Given this folder structure,
YourProject |-- src | `-- com | `-- example | `-- BackingBean.java |-- WebContent | |-- META-INF | |-- WEB-INF | |-- resources | | `-- icons | | `-- foo.png | `-- foo.xhtml :
You can get it by either ExternalContext#getResourceAsStream() which takes webcontent-relative path:
ExternalContext externalContext = FacesContext.getCurrentInstance().getExternalContext();
InputStream input = externalContext.getResourceAsStream("/resources/icons/foo.png");
// ...
Or by Resource#getInputStream() wherein Resource is obtained from ResourceHandler#createResource() which takes a /resources-relative path:
ResourceHandler resourceHandler = FacesContext.getCurrentInstance().getApplication().getResourceHandler();
InputStream input = resourceHandler.createResource("icons/foo.png").getInputStream();
// ...
As to selecting the image and passing its path around, just do something like as follows: