来自数据库的图形图像“src / value”

时间:2013-08-14 03:06:04

标签: database jsf primefaces

我在jsf框架上使用primefaces,我在我的数据库中有一个字段,用于保存图像保存位置的url源:例如:

表人:

id: integer
name: varchar
img: varchar ("C:\images\person\person1.jpg")

所以,在我的java方法中,y返回那个url字符串但是当我把它放到图形图像标签上时 它像http://localhost:8080/..../C:\images\person\person1.jpg

一样加载

任何想法???

<p:graphicImage value="#{person.img}"/>

这一行是纯粹的HTML

<img  src="C:\images\person\person1.jpg" alt=""/>

2 个答案:

答案 0 :(得分:1)

您似乎希望该图像由默认servlet或JSF资源提供,因为它位于您的文件系统上。除非想象是您的网络应用程序的一部分,否则不会发生这种情况。

要提供服务,请从您的方法返回StreamedContent个对象,例如return new StreamedContent(new FileInputStream(getPathFromDatabase()));。请注意,返回的属性应该在会话范围或请求范围中可用,因为图像由Primefaces资源处理程序在单独的请求中提供。这意味着如果从视图范围的bean返回StreamedContent对象,则后续请求将无法使用它。

答案 1 :(得分:0)

相对于您的上下文,graphicImage的value属性是相对url(如果实现StreamedContent,则是二进制流)。 这意味着它会附加到您的应用程序的网址上,从而产生类似:http://hostname:port/appname/relative_image_url

的内容