好吧,我正在尝试使用p:graphicImage在p:dataTable中显示图像,但图像看起来像“已损坏”,如下图所示:
我google了很多人,发现很多人,包括BaluscC说同样的事情:将图像作为StreamedContent对象,但对我来说它不起作用,奇怪的是我的控制台上没有显示错误。这是我的代码:
在我的bean“Place”上获取blob图像(byte [])并转换为StreamedContent
public StreamedContent getImageStreamContent() {
if(image != null){
InputStream is = new ByteArrayInputStream(image);
imageStreamContent = new DefaultStreamedContent (is, "image/png");
return imageStreamContent;
}else{
return null;
}
}
这是我对maven的依赖:
<!-- Regarding to upload image -->
<dependency>
<groupId>commons-fileupload</groupId>
<artifactId>commons-fileupload</artifactId>
<version>1.3.1</version>
</dependency>
<dependency>
<groupId>commons-io</groupId>
<artifactId>commons-io</artifactId>
<version>2.4</version>
</dependency>
<dependency>
<groupId>commons-logging</groupId>
<artifactId>commons-logging</artifactId>
<version>1.1.3</version>
</dependency>
这是我的web.xml
<filter>
<filter-name>PrimeFaces FileUpload Filter</filter-name>
<filter-class>org.primefaces.webapp.filter.FileUploadFilter</filter-class>
</filter>
<filter-mapping>
<filter-name>PrimeFaces FileUpload Filter</filter-name>
<servlet-name>Faces Servlet</servlet-name>
</filter-mapping>
这是我的数据表:
<p:column headerText="Photo" width="80">
<p:graphicImage value="#{place.imageStreamContent}" />
</p:column>
任何人都知道我做错了什么?
干杯!
答案 0 :(得分:-2)