所以我想实现的是,只要value属性无法引用适当的图像(例如,数据库中没有图像上传/没有图像),就会使用资源库中的默认图像。
只是想像一下:
用户尚未提供个人资料照片,因此bean.icon
应该为null
。
<o:graphicImage value="#{bean.icon}" dataURI="true" /> (null isn't allowed as return value)
现在,我希望graphicImage组件显示默认值,从语义上讲:
<o:graphicImage name="img/default.png" dataURI="true" />
是否有可能以优雅的方式实现这一目标,也许无需使用JavaScript?
最佳答案
不是通过<o:graphicImage>
组件。但是,您可以在Faces#getResourceAsStream()
实用程序的帮助下在bean中实现此目的。
public InputStream getIcon() {
InputStream input = yourIconService.getIconAsInputStreamSomehow();
return (input != null) ? input : Faces.getResourceAsStream("/resources/img/default.png");
}