p:graphicImage不在数据表上显示图像

时间:2016-02-20 10:27:04

标签: jsf primefaces

在谷歌搜索了一整天并且几乎疯了之后,我只是放弃了,现在试图找出是否有人可以帮我解决这个问题。

好吧,我正在尝试使用p:graphicImage在p:dataTable中显示图像,但图像看起来像“已损坏”,如下图所示:

enter image description here
我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> 


任何人都知道我做错了什么?

干杯!

1 个答案:

答案 0 :(得分:-2)

您可以使用纯HTML的图片标签 图像的路径应该是基于url的

http://localhost:8080/test/images/login.png

它对我有用,所以我希望它能对您有帮助