如何从外部位置渲染facelet中的图像?

时间:2012-11-23 17:06:27

标签: image jsf location external

为了在模板客户端中使用h:graphicImage渲染简单图像,我已经尝试了一切。 我的图像不是在战争中,而是在同一磁盘上的另一个位置。

实际上我没有显示'alt'属性或警告无法找到图像。 我的图像被找到并且可能被渲染为空框架,其宽度和高度我在h:graphicImage中指定。这个空框架具有背景颜色。

有没有人知道如何从外部位置渲染图像,因为我还没有找到这个例子?

谢谢!

2 个答案:

答案 0 :(得分:0)

我已经在本文的帮助下轻松解决了这个问题 - http://balusc.blogspot.com/2007/04/imageservlet.html

答案 1 :(得分:0)

最简单的方法是使用OmniFaces o:graphicImage。使用从文件系统接受文件路径并返回java.io.InputStream的方法创建一个javax.faces.bean.ApplicationScoped bean。像那样:

JAVA:

@Named
@ApplicationScoped
public class FileReader {

public InputStream getImageByPath(String filename) throws FileNotFoundException{
        return new FileInputStream(new File(filename));
}

}

JSF:

<html xmlns:o="http://omnifaces.org/ui">

<o:graphicImage value="#{fileReader.getImageByPath('/opt/images/admin/112/IMG_1292.JPG')}"/>