我有一个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
我该如何解决这个问题?我在等你的帮忙。谢谢。
答案 0 :(得分:0)
你不能像你一样在html中嵌入图像。 在html代码中,您必须仅指向图像的URL并让浏览器下载图像。 图片网址应如下所示:
http: //hizliresim.com/Y3lky6/readMyImage/1234
或
http: //hizliresim.com/Y3lky6/readMyImage?imageId=1234
然后你必须创建servlet&#39; readMyImage&#39;从具有给定id的数据库映像读取并将其提供给浏览器。