无法在jsf中动态加载图像



我正在做一些项目,我需要实现图像上传和查看图像功能,但是我在这里遇到了一些问题。

我无法显示图像,你能帮助我吗

我使用p:fileload from primefaces,我将所有图像存储在jboss服务器的bin文件夹中(E:jboss-as-7.1.1. final binBrandImageslogo.gif)。并将该路径存储在MYSQL DB中,直到现在它工作正常。但是,当我试图通过调用getBrandDetails()来显示图像时,它无法显示。你能告诉我如何解决这个问题吗?

在web . xml

在web.xml中添加了过滤器和mime…

Xhtml
<h:form enctype="multipart/form-data">
   <h:panelGrid id="brandDetails_Panel" columns="2" columnClasses="plabel, pvalue" styleClass="ui-panelgrid">
        <h:outputLabel for="brand_img_url" value="Brand Image" />
    <p:fileUpload id="brand_img_url" fileUploadListener="#{brandBean.handleFileUpload}"  
        mode="advanced"  sizeLimit="100000" allowTypes="/(./)(gif|jpe?g|png)$/"/>
        <h:outputLabel value="" />
    <p:graphicImage value="#{brandBean.brand_image}" alt="The image could not be found."/>
    </h:panelGrid>
<f:facet name="footer" >
    <center>
        <p:commandButton id="add" value="Add"  disabled="#{brandBean.disable_addBut}" actionListener="#{brandBean.addBrandDetails}"/>
        <p:commandButton id="view" value="View" disabled="#{brandBean.disable_viewBut}"  action="#{brandBean.getBrandDetails}"/>         
    </center>       
</f:facet>
</h:form>

在addBrandDetails()中,handleFileUpload()为

public void handleFileUpload(FileUploadEvent event) 
{
String t1=".\BrandImages\"+event.getFile().getFileName();
System.out.println("The final path is :"+t1);
try{
    File f =new File(t1);
    FileOutputStream fileOutputStream = new FileOutputStream(f);
    byte[] buffer = new byte[1024];
        int bulk;
        InputStream inputStream = event.getFile().getInputstream();
        while (true) {
          bulk = inputStream.read(buffer);
          if (bulk < 0) {
                 break;
                 }
          fileOutputStream.write(buffer, 0, bulk);
          fileOutputStream.flush();
          }
          fileOutputStream.close();
          inputStream.close();
}catch(Exception e)
{
    System.out.println("Exception :"+e);
}   
this.brand_image=t1;
}               

在getBrandDetails()中,我设置为"this.setBrand_image(b.getBrand_img_url());"

当我打印它是打印路径E:jboss-as-7.1.1.FinalbinBrandImageslogo.gif

但是无法显示图像。

请帮帮我....

首先,bean的作用域必须为session。一个好方法是只创建一个bean来获取请求的图像。

第二,你的变量"brand_image"需要是DefaultStreamedContent的一个对象。因为你正在使用主面
brand_image = new DefaultStreamedContent(input, "image/jpeg");

相关内容

  • 没有找到相关文章

最新更新