GraphicImage:如果value属性返回null,如何使用默认图像?

时间:2016-08-01 10:07:19

标签: jsf omnifaces

所以我想要实现的是,只要值属性无法引用正确的图像(例如,没有图像上传/数据库中没有图像),就会使用来自资源库的默认图像。

只是想象一下:

用户尚未提供个人资料照片,因此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?

1 个答案:

答案 0 :(得分:3)

不通过<o:graphicImage>组件。但是,您可以在Faces#getResourceAsStream()实用程序的帮助下在bean中实现此目的。

public InputStream getIcon() {
    InputStream input = yourIconService.getIconAsInputStreamSomehow();
    return (input != null) ? input : Faces.getResourceAsStream("/resources/img/default.png");
}