Мне было интересно, знает ли кто-нибудь, как получить доступ к ресурсу изображений в RichFaces.Мне нужно это ч / б. Я пытаюсь создать самодостаточный компонент JSF, чтобы изображения не могли обслуживаться как обычно на моем пути контекста.
Итак, допустим, я создал InternetResource
как это в моем рендерере:
InternetResource temp =
getResource("/ca/gc/agr/agrishare/web/jsf/components/ajaxfileupload/images/paperclip.gif");
System.out.println(temp.getUri(context, component));
Будет напечатано: /AgriShare/a4j/g/3_3_3.Finalca/gc/agr/agrishare/web/jsf/components/ajaxfileupload/images/paperclip.gif.jsf
Отлично.Теперь я хочу получить доступ к этому ресурсу изображения из Facelet, который является внутренним для моего компонента.
Как определить правильный URL?Есть ли стандартный способ сделать это?Посмотрев на код, я в конечном итоге сделал это в своем Facelet:
<c:set var="resourceContext" value="#{facesContext.externalContext.applicationMap['org.ajax4jsf.webapp.WebXml'].globalResourcePrefix}" />
<h:graphicImage value="#{resourceContext}ca/gc/agr/agrishare/web/jsf/components/ajaxfileupload/images/paperclip.gif.jsf" />
, но это кажется очень грязным способом сделать это.Есть ли лучший способ?
ОБНОВЛЕНИЕ:
Ник Белаевский предложил такой подход:
<h:graphicImage value="resource:///ca/gc/agr/agrishare/web/jsf/components/ajaxfileupload/images/paperclip.gif" />
, который прекрасно работает.