如何在xhtml页面中显示图像?

时间:2014-07-22 11:00:34

标签: java maven

我有一个Maven项目。我可以在我的数据库中上传图像,但我想将这个图像放在我的xhtml页面中。

我的Java代码;

private StreamedContent secilenMusteriResimi;

public StreamedContent getSecilenMusteriResimi()
    {
        return secilenMusteriResimi;
    }

    public void setSecilenMusteriResimi(StreamedContent secilenMusteriResimi)
    {
        this.secilenMusteriResimi = secilenMusteriResimi;
    }

public void showImage()
{

    RequestContext.getCurrentInstance().update("panel");
    imagesPath = selectedImages.getPath();
    try

    {

        InputStream inputStream = new ByteArrayInputStream(selectedImages.getProfilresmi());
        BufferedImage resimData = ImageIO.read(inputStream);
        ByteArrayOutputStream os = new ByteArrayOutputStream();
        ImageIO.write(resimData, "jpg", os);
        secilenMusteriResimi = new DefaultStreamedContent(new ByteArrayInputStream(os.toByteArray()), "image/jpg");

        //  secilenMusteriResimi = new DefaultStreamedContent(inputStream);

    }
    catch (Exception e)
    {
        e.printStackTrace();
    }

}

我的xhtml代码;

<h:form>
            <p:dataTable id="table" var="img"
                value="#{musteriBean.musteriTanimlariListesi}"
                style="width: 500px;" selectionMode="single"
                selection="#{musteriBean.selectedImages}" rowKey="#{img.id}">
                <p:ajax event="rowSelect" listener="#{musteriBean.showImage()}" update=":panel" />
                <p:column headerText="ID">
                    <h:outputText value="#{img.id}" />
                </p:column>
            </p:dataTable>
        </h:form>
        <br />
        <h:form id="panel">
            <p:panelGrid  columns="1">
                <p:graphicImage value="#{musteriBean.secilenMusteriResimi}"/>
            </p:panelGrid>
        </h:form>

当我运行程序时;

http://hizliresim.com/Y3lky6

我该如何解决这个问题?我在等你的帮忙。谢谢。

1 个答案:

答案 0 :(得分:0)

你不能像你一样在html中嵌入图像。 在html代码中,您必须仅指向图像的URL并让浏览器下载图像。 图片网址应如下所示:

http: //hizliresim.com/Y3lky6/readMyImage/1234

http: //hizliresim.com/Y3lky6/readMyImage?imageId=1234

然后你必须创建servlet&#39; readMyImage&#39;从具有给定id的数据库映像读取并将其提供给浏览器。