我想知道是否有人知道如何访问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" />
效果很好。