Как ссылаться на ресурс файла в приложении JSF - PullRequest
8 голосов
/ 07 октября 2009

Я хочу динамически ссылаться на XSD из компонента, как это возможно? Я уже добавил XSD в проект, поэтому он находится где-то в домене GlassFish.

1 Ответ

16 голосов
/ 07 октября 2009

Используйте ExternalContext.

Если вы хотите загрузить ресурс в компонент, сделайте это через getResource или getResourceAsStream :

InputStream stream = FacesContext.getCurrentInstance().getExternalContext()
    .getResourceAsStream("/foo.xsd");

Если вы хотите вернуть URL-адрес ресурса, используйте getRequestContextPath , чтобы получить путь относительно корня хоста:

ExternalContext ext = FacesContext.getCurrentInstance()
    .getExternalContext();
String path = ext.getRequestContextPath();
path += path.endsWith("/") ? "foo.xsd" : "/foo.xsd";
String url = ext.encodeResourceURL(path);
...