我正在尝试找到一种从数据库加载图像名称并将其显示在网页上的解决方案。 基本上,当我显示图像时,我这样做:
<h:graphicImage value="#{resource['mywebapp:image.png']}">
</h:graphicImage>
所以现在代替image.png我想动态加载替代图像。问题是,我不能在另一个内部使用EL嵌套表达式(至少我还没有发现如何)。在这种情况下,将逻辑放入辅助bean也没有帮助,因为它的呈现方式如下:
<img src="#{resource['mywebapp:somedynamicallyloadedimagename.png']}">
</img>
唯一有效的方法是直接在辅助bean中生成路径:
public String getImage() {
this.image = "/mywebapp/javax.faces.resource/"+this.image+".jsf?ln=images";
return image;
}
然而,这个“解决方案”远非优雅,因为一切都是硬编码的,这不是我要放在生产应用程序中。 这样做有什么好办法?我想避免将图像放入数据库并使用primefaces .. 由于我不是一个经验丰富的JSF编码器(你可能会告诉我),我非常感谢对这个主题的一些想法...提前感谢!
答案 0 :(得分:1)
尝试
<h:graphicImage library="images" name="#{generated.name}" />