Spring + JSF - 从数据库中检索图像并在 Brower 中显示

亚戈尔

我正在使用 Spring 4 + JSF 2.0 框架 + MySQL 数据库开发一个网站。我正在尝试从数据库中检索图像并将其显示在浏览器上。所以基本上我有一个名为 product_t 的表,其中有一个名为 image 的 LongBlob 列,负责存储 png 文件。

我需要从页面中的每个产品中检索每个图像,因此:

<ui:repeat value="#{productControllerImpl.list3NotNewRandomProducts()} var="product" varStatus="status">
<h2>#{product.name}</h2>
<strong>#{product.subDescription}</strong><br></br> <span>#{product.description}
</ui:repeat>

到现在为止还挺好。

我在谷歌上搜索以下解决方案:

对于 UI 中的每个产品,我需要调用一个 Servlet 以检索图像。当我使用 JSF + Spring 时,我在 UI 中编写了以下块代码:

<h:graphicImage   value="/images/#{productControllerImpl.findProductImageById(product.id)}"/>

在我的 productControllerImpl 我有这个:

@Override
public byte[] findProductImageById(Long productId) {
    byte[] productImage = null;
    HttpServletResponse response = (HttpServletResponse) FacesContext.getCurrentInstance().getExternalContext().getResponse();      
    ServletOutputStream outputStream = null; 
    try {
        productImage = productService.findProductImageById(productId);
        response.reset();           
        outputStream = response.getOutputStream();
        response.setContentType("image/png");
        outputStream.write(productImage);
        outputStream.flush();       
        outputStream.close();
    } catch(Throwable e){
        throw new RuntimeException("Error processing product image: " + e.getMessage(), e);
    }

    return null;
}

所以基本上我从迭代中接收 productIt,并在数据库中搜索相应的产品图像(我不知道这是否是最佳选择)。

这里的问题是,当访问此页面时,我在浏览器中收到完整图像:

产品图片

我很迷失在这部分。

有人知道我在这里缺少什么吗?

提前致谢。

维纳尔

我假设您指的是将数据库中的图像显示为字节 [] 作为 JSF 页面中的图形图像

我相信你的主要问题是你正在结束你的响应流: outputStream.flush();
outputStream.close(); 删除它们,然后在您的 doGet 上为图像 servlet 再次尝试。

我个人更喜欢此处提到的带有 PrimeFaces 的 StreamedContent Display dynamic image from database with p:graphicImage and StreamedContent

或 OmniFaces graphicsImage http://showcase.omnifaces.org/components/graphicImage而不是创建 servlet 来输出内容。

BalusC 的这篇文章将解决您的所有问题:用于提供静态内容的 Servlet

本文收集自互联网,转载请注明来源。

如有侵权,请联系[email protected] 删除。

编辑于
0

我来说两句

0条评论
登录后参与评论

相关文章

来自分类Dev

从oracle数据库检索图像并在jsp中显示图像

来自分类Dev

数据库中的JSF Bean未显示

来自分类Dev

实施Spring Security后在jsf页面中显示图像时出错

来自分类Dev

检索图像并在图片框中显示,图像路径存储在数据库C#中

来自分类Dev

从数据库中检索多个图像

来自分类Dev

在JSF中显示Wildfly外部的外部图像

来自分类Dev

h:graphicImage在JSF中不显示图像

来自分类Dev

如何从数据库检索数据并在delphi中的Ttreeview中显示

来自分类Dev

如何与JSF中的(MySQL)数据库进行交互

来自分类Dev

在JSF页面中将图像显示为来自数据库的byte []作为图形图像

来自分类Dev

从数据库中检索数据并在Android中使用MPAndroidChart在条形图中显示它们

来自分类Dev

无法使用Servlet从数据库检索数据并在JSP中显示

来自分类Dev

如何使用Springs MVC从数据库检索数据并在JSP中显示?

来自分类Dev

h:消息未显示在jsf页面中

来自分类Dev

在jsf中隐藏和显示commandButton

来自分类Dev

h:消息未显示在jsf页面中

来自分类Dev

html 图片未显示在 JSF 模板中

来自分类Dev

借助保存在数据库中的路径从存储中检索图像并显示在listView中

来自分类Dev

从数据库中的 JSON 文件中检索图像并显示在 HTML img 标签中

来自分类Dev

使用JSF 2.0自定义登录页面在Spring Security中使用BCryptPasswordEncoder-使用保存在数据库中的加密密码登录

来自分类Dev

显示FacesMessage并在JSF中重新加载页面

来自分类Dev

如何检索和/或添加数据库表值并在文本字段中显示

来自分类Dev

如何从MySQL数据库检索pdf和word文件并在html标签中显示

来自分类Dev

将图像从提交表单上传到mysql数据库并在div中显示图像?

来自分类Dev

将图像从提交表单上传到mysql数据库并在div中显示图像?

来自分类Dev

如何使用Java将长Blob(图像)上传到mysql数据库并在php中检索?

来自分类Dev

如何使用Java将长Blob(图像)上传到mysql数据库并在php中检索?

来自分类Dev

我想从 mysql 数据库中检索图像,但它显示的是字符而不是图像

来自分类Dev

如何使用数据库中的图像URL并在Razor页面中显示?

Related 相关文章

  1. 1

    从oracle数据库检索图像并在jsp中显示图像

  2. 2

    数据库中的JSF Bean未显示

  3. 3

    实施Spring Security后在jsf页面中显示图像时出错

  4. 4

    检索图像并在图片框中显示,图像路径存储在数据库C#中

  5. 5

    从数据库中检索多个图像

  6. 6

    在JSF中显示Wildfly外部的外部图像

  7. 7

    h:graphicImage在JSF中不显示图像

  8. 8

    如何从数据库检索数据并在delphi中的Ttreeview中显示

  9. 9

    如何与JSF中的(MySQL)数据库进行交互

  10. 10

    在JSF页面中将图像显示为来自数据库的byte []作为图形图像

  11. 11

    从数据库中检索数据并在Android中使用MPAndroidChart在条形图中显示它们

  12. 12

    无法使用Servlet从数据库检索数据并在JSP中显示

  13. 13

    如何使用Springs MVC从数据库检索数据并在JSP中显示?

  14. 14

    h:消息未显示在jsf页面中

  15. 15

    在jsf中隐藏和显示commandButton

  16. 16

    h:消息未显示在jsf页面中

  17. 17

    html 图片未显示在 JSF 模板中

  18. 18

    借助保存在数据库中的路径从存储中检索图像并显示在listView中

  19. 19

    从数据库中的 JSON 文件中检索图像并显示在 HTML img 标签中

  20. 20

    使用JSF 2.0自定义登录页面在Spring Security中使用BCryptPasswordEncoder-使用保存在数据库中的加密密码登录

  21. 21

    显示FacesMessage并在JSF中重新加载页面

  22. 22

    如何检索和/或添加数据库表值并在文本字段中显示

  23. 23

    如何从MySQL数据库检索pdf和word文件并在html标签中显示

  24. 24

    将图像从提交表单上传到mysql数据库并在div中显示图像?

  25. 25

    将图像从提交表单上传到mysql数据库并在div中显示图像?

  26. 26

    如何使用Java将长Blob(图像)上传到mysql数据库并在php中检索?

  27. 27

    如何使用Java将长Blob(图像)上传到mysql数据库并在php中检索?

  28. 28

    我想从 mysql 数据库中检索图像,但它显示的是字符而不是图像

  29. 29

    如何使用数据库中的图像URL并在Razor页面中显示?

热门标签

归档