Я знаю, что для отображения изображения JSF путь должен быть от корня веб-сервера/сервера приложений, а не от корня системы. Так что нет абсолютного пути. Но вот моя проблема. Поскольку я разрешаю пользователю загружать свои собственные изображения, а затем отображать их, мне нужно сохранить изображения где-нибудь. Однако, если я сохраню изображение внутри моего проекта, будущий проект перераспределения может стереть мои фотографии. В результате, я думаю, лучше всего загрузить в папку, которая не будет выполняться при повторном развертывании. Но тогда h: graphicImage или p: graphicImage не позволит мне использовать абсолютный путь. Каковы мои варианты решения этой проблемы?JSF Изображение и абсолютный путь
Я знаю, что это дает мне путь к моему проекту-войны
ServletContext servletContext = (ServletContext) FacesContext.getCurrentInstance().getExternalContext().getContext();
String path = servletContext.getRealPath("");
Есть ли способ, чтобы заставить меня корень веб/приложений?
Primefaces 2,2-RC2
Glassfish 3.0.1
Mojarra 2.0.3 Java EE 6
EDIT
После недолгого исследования я узнал, что PrimeFaces позволяют течь содержимое изображения с использованием FileInputStream
, и вы можете использовать FileInputStream
, используя абсолютный путь. Это может быть хорошим решением, пока я не проверил и не выясню, что это может работать только на RequestScoped и SessionScoped Bean, но не на ViewScoped.
Вот ссылка, которую я публикую, чтобы уведомить своих разработчиков об этих основных ошибках. http://primefaces.prime.com.tr/forum/viewtopic.php?f=3&t=7052
Любая другая идея?
ссылке выше содержат решение для меня. Проверьте это. –