графическое изображение простых лиц из базы данных не загружается

1

У меня возникли проблемы с отображением изображения из базы данных на компоненте графического интерфейса. Я использую первичность 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()));
        }
    }
}

Это то, что я вижу в консоли браузера.

Изображение 174551

Теги:
jsf
primefaces
jsf-2
graphicimage

1 ответ

2
Лучший ответ
  1. Добавьте MIME-тип в web.xml, как показано ниже:

    <mime-mapping>
       <extension>xhtml</extension>
       <mime-type>image/svg+xml</mime-type>
    </mime-mapping>
    
  2. Измените свой оператор return в своем bean-компоненте, как показано ниже:

    return new DefaultStreamedContent(new ByteArrayInputStream(dr.getImage()),"image/svg+xml");
    
  • 1
    потрясающе .. что сделал трюк. Спасибо.

Ещё вопросы

Сообщество Overcoder
Наверх
Меню