java - 数据库中的 primefaces 图形图像未加载

标签 java jsf jsf-2 primefaces graphicimage

我在 primefaces 图形图像组件上显示数据库中的图像时遇到问题。我正在使用 primefaces 3.4.2、jsf 2.2、glassfish 3.1.2.2。以下是我正在尝试的简单代码。我浏览了与 p:graphicimage 相关的其他帖子并纳入了建议,但我仍然无法完成这项工作。这里出了什么问题?

index.xhtml

<html xmlns="http://www.w3.org/1999/xhtml"
    xmlns:h="http://java.sun.com/jsf/html"
    xmlns:p="http://primefaces.org/ui">
<h:head>
</h:head>
<h:body>
    <h:form id="f1">
        <p:panel style="height: 500px ; width: 800px" visible="true">
            <p:graphicImage value="#{treeBean.image}" />
        </p:panel>
    </h:form>
</h:body>
</html>

TreeBean.java

@Named
@ApplicationScoped
public class TreeBean implements Serializable{
    @EJB
    private ImageEJB imageEjb;
    public StreamedContent getImage() throws IOException{
        FacesContext context = FacesContext.getCurrentInstance();
        if (context.getCurrentPhaseId() == PhaseId.RENDER_RESPONSE) {
            return new DefaultStreamedContent();
        }
        else {
            Decisiontree dr = imageEjb.getTree();
            return new DefaultStreamedContent(new ByteArrayInputStream(dr.getImage()));
        }
    }
}

这是我在浏览器控制台中看到的内容。

Error in console

最佳答案

  1. 在 web.xml 中添加 MIME 类型,如下所示:-

    <mime-mapping>
       <extension>xhtml</extension>
       <mime-type>image/svg+xml</mime-type>
    </mime-mapping>
    
  2. 更改 Bean 中的返回语句,如下所示:-

    return new DefaultStreamedContent(new ByteArrayInputStream(dr.getImage()),"image/svg+xml");
    

关于java - 数据库中的 primefaces 图形图像未加载,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/22444991/

相关文章:

JSF 2.0 注入(inject)不同范围的托管 bean

jsf - 在 JSF 2.0 中更新命令链接值

java - 如何在eclipse中更改@author标签配置,使其采用我指定的名称?

java - java中Excel到PDF的转换

jsf - primefaces uiViewRoot 在 <p :dataTable > 内查找组件

java - 如何像spring mvc一样设置动态变量并将其传递给JSF?

jsf-2 - 警告 : Unsupported component-family/renderer-type: org.omnifaces.component.script/javax.faces.Button

java - Hibernate/JPA 使用组合键连接两个表(无外部关系)

java - 使用 TCP + AsyncTask 保持连接打开并监听从服务器发送的数据

java - 应该在pom文件中添加哪个依赖项来导入org.apache.tiles.controller?