【发布时间】:2012-03-13 13:43:20
【问题描述】:
我正在尝试找到一种解决方案来从数据库加载图像名称并将它们显示在网页上。 基本上,当我显示图像时,我会这样做:
<h:graphicImage value="#{resource['mywebapp:image.png']}">
</h:graphicImage>
所以现在我想动态加载替代图像,而不是 image.png。问题是,我不能在另一个嵌套表达式中使用 EL 嵌套表达式(至少我还没有找到方法)。在这种情况下,将逻辑放入 backing bean 也无济于事,因为它是这样呈现的:
<img src="#{resource['mywebapp:somedynamicallyloadedimagename.png']}">
</img>
唯一可行的方法是直接在 backing bean 中生成路径:
public String getImage() {
this.image = "/mywebapp/javax.faces.resource/"+this.image+".jsf?ln=images";
return image;
}
然而,这个“解决方案”远非优雅,因为一切都是硬编码的,这不是我要放入生产应用程序的任何东西。 什么是一个很好的解决方案?我想避免将图像放入数据库并使用primefaces .. 由于我不是一个经验丰富的 JSF 编码器(正如您可能知道的那样),我非常感谢您对这个主题的一些想法......在此先感谢!
【问题讨论】: