o:graphicImage 图像未显示

Kam*_*ili 2 jsf omnifaces

我一直面临着一个问题Omnifaces 2.1

byte[]在我的数据库中存储了一个图像类型,其中包含一个声明 java 类,如下所示:

 @Lob
    private byte[] image;
Run Code Online (Sandbox Code Playgroud)

在我的 xhtml 文件中,我在一个包含图像的类上有一个循环:

<ui:repeat var="listT" value="#{eventBean.listEvents}">                                             
<o:graphicImage value="#{eventBean.getImage(listT.idEvent)}"  dataURI="true" />  
</ui:repeat>
Run Code Online (Sandbox Code Playgroud)

现在bean我尝试实现getImage()omn​​ifaces文档中提到的功能:

 @ManagedBean
 @ViewScoped
 public class EventBean implements Serializable {

 private static final long serialVersionUID = 1L;
 @EJB
 private EventServiceLocal eventServiceLocal;
 private Event event = new Event();
 private List<Event> listEvents;
 private List<Event> listEventsval;
 private static Event eventSt;
 private UploadedFile file;

 public byte[] getImage(int eventID) {

    return eventServiceLocal.listEventspicture(eventID);
}
Run Code Online (Sandbox Code Playgroud)

当我执行这个时,我没有图像,当我检查元素时,我得到了这个结果:

 <o:graphicimage value="[B@1aeef88" datauri="true"></o:graphicimage>
Run Code Online (Sandbox Code Playgroud)

Bal*_*usC 5

当我执行这个时我没有图像,当检查元素时我得到这个结果:

<o:graphicimage value="[B@1aeef88" datauri="true"></o:graphicimage>
Run Code Online (Sandbox Code Playgroud)

换句话说,<o:xxx>标签根本不起作用。这不仅限于<o:graphicImage>单独使用。<o:xxx>同一页面中的所有其他标签也不起作用。

这可能有两个原因:

  1. OmniFaces 未安装在 webapp 中。
  2. oXML命名空间是不是在XHTML页面中声明。

解决这个问题的正常程序是:

  1. 将 OmniFaces JAR 文件添加到/WEB-INF/lib(或让您的依赖项管理器执行此操作)。
  2. 添加xmlns:o="http://omnifaces.org/ui到某个父元素。

要验证工作:

  1. 当从您的项目导出 WAR 文件并使用 ZIP 工具检查它时,物理 OmniFaces JAR 文件应该存在于/WEB-INF/lib文件夹中,并且在部署期间服务器日志中应该有如下一行:

    信息 [org.omnifaces.ApplicationInitializer] 使用 OmniFaces 版本 2.6.8

  2. <o:xxx>生成的 HTML 输出中的任何地方都不应该有标签。