Как получить доступ к изображению в качестве ресурса RichFaces - PullRequest
0 голосов
/ 15 апреля 2011

Мне было интересно, знает ли кто-нибудь, как получить доступ к ресурсу изображений в 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" />

, который прекрасно работает.

...