2015-01-23 2 views
0

Я не могу отобразить изображение внешнего хоста на странице JSF. В моем случае это файловый сервер Apache. Я создаю URL изображения в @RequestScoped bean, а затем пытаюсь передать его как String в @ViewScoped bean для интерфейса.не может отображать внешний внешний вид хоста

Я пытался отобразить изображение двумя способами: Во-первых, загрузив ее с JSF:

<h:graphicImage name="#{myViewScopedBean.myObject.mainImageUrl}" />

А потом с HTML <img> теге как указано в этом answer.

Впоследствии я попытался напечатать все атрибуты myObject. Все атрибуты String отображаются хорошо, кроме mainImageUrl. и я на 100% уверен, что устанавливаю mainImageUrl на бэкэнд.

Что может спровоцировать эту проблему? Есть ли какая-либо конфигурация безопасности JSF?

+1

Вы забыли сообщить сгенерированный вывод HTML. Это все, что получает браузер. Браузер отвечает за загрузку и отображение изображения. Измените свой вопрос, чтобы включить элемент, созданный JSF '', как только он был восстановлен браузером (сделайте rightclick, * View Source * в браузере, чтобы увидеть его). – BalusC

+0

Я просто получаю ''. Я уверен, что я устанавливаю URL-адрес изображения 'myViewScopedBean.myObject.mainImageUrl', но похоже, что он не доходит до интерфейса – andriy

+0

. Это действительно произойдет, когда вы попытаетесь ссылаться на него как на внутренний ресурс JSF, в то время как это не внутреннего ресурса JSF. Меня больше интересует '' подход. – BalusC

ответ

1

Атрибут name<h:graphicImage> должен представлять имя ресурса JSF, а не URL. Ресурсы JSF объясняются, среди прочего, How to reference CSS/JS/image resource in Facelets template? Если вы намерены указать реальный URL-адрес, вы должны использовать attribtue вместо этого или просто HTML <img>.

Таким образом, либо

<h:graphicImage value="#{myViewScopedBean.myObject.mainImageUrl}" /> 

Или

<img src="#{myViewScopedBean.myObject.mainImageUrl}" /> 

Если это все еще не работает, то, видимо, URL совершенно неправильно. Проверьте сгенерированный вывод HTML и встроенный HTTP-монитор монитора браузера (нажмите F12). Вы должны иметь возможность открывать изображение самостоятельно, копируя именно этот URL прямо в адресную строку браузера.