如何以RichFaces资源的形式访问图像

时间:2011-04-15 05:00:26

标签: richfaces facelets

我想知道是否有人知道如何访问RichFaces中的图像资源。我需要这个b / c我正在尝试创建一个自包含的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访问此图像资源。

如何确定正确的网址?有没有标准的方法来做到这一点?通过查看代码,我最终在我的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" />

但这似乎是一种非常混乱的方式。还有更好的方法吗?

更新:

Nick Belaevski建议采用这种方法:

<h:graphicImage value="resource:///ca/gc/agr/agrishare/web/jsf/components/ajaxfileupload/images/paperclip.gif" />

效果很好。

0 个答案:

没有答案