o:graphicImage 图片未显示
o:graphicImage images not displayed
我一直面临 Omnifaces 2.1
的问题。
我有一个图像类型 byte[]
存储在我的数据库中,声明 java class 如下:
@Lob
private byte[] image;
在我的 xhtml 文件中,我在 class 上有一个循环,其中有一个图像:
<ui:repeat var="listT" value="#{eventBean.listEvents}">
<o:graphicImage value="#{eventBean.getImage(listT.idEvent)}" dataURI="true" />
</ui:repeat>
现在,在我的 bean
中,我尝试实现 omnifaces 文档中提到的 getImage()
功能:
@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);
}
当我执行这个时,我没有图像,当我检查元素时,结果是这样的:
<o:graphicimage value="[B@1aeef88" datauri="true"></o:graphicimage>
when i execute this i got no image and when inspect the element i get this as result :
<o:graphicimage value="[B@1aeef88" datauri="true"></o:graphicimage>
换句话说,<o:xxx>
标签根本不起作用。这不仅限于 <o:graphicImage>
。同一页面中的所有其他 <o:xxx>
标记也将不起作用。
这可能有 2 个原因:
- Web 应用程序中未安装 OmniFaces。
- XHTML 页面中未声明 [=14=] XML 命名空间。
解决这个问题的正常程序是:
- 将 OmniFaces JAR 文件添加到
/WEB-INF/lib
(或让您的依赖项管理器执行此操作)。
- 将
xmlns:o="http://omnifaces.org/ui
添加到某些父元素。
验证工作:
从您的项目导出 WAR 文件并使用 ZIP 工具检查它时,物理 OmniFaces JAR 文件应该存在于 /WEB-INF/lib
文件夹中,并且应该有一个部署期间服务器日志中的如下行:
INFO [org.omnifaces.ApplicationInitializer] Using OmniFaces version 2.6.8
生成的 HTML 输出中的任何地方都不应有 <o:xxx>
标记。
我一直面临 Omnifaces 2.1
的问题。
我有一个图像类型 byte[]
存储在我的数据库中,声明 java class 如下:
@Lob
private byte[] image;
在我的 xhtml 文件中,我在 class 上有一个循环,其中有一个图像:
<ui:repeat var="listT" value="#{eventBean.listEvents}">
<o:graphicImage value="#{eventBean.getImage(listT.idEvent)}" dataURI="true" />
</ui:repeat>
现在,在我的 bean
中,我尝试实现 omnifaces 文档中提到的 getImage()
功能:
@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);
}
当我执行这个时,我没有图像,当我检查元素时,结果是这样的:
<o:graphicimage value="[B@1aeef88" datauri="true"></o:graphicimage>
when i execute this i got no image and when inspect the element i get this as result :
<o:graphicimage value="[B@1aeef88" datauri="true"></o:graphicimage>
换句话说,<o:xxx>
标签根本不起作用。这不仅限于 <o:graphicImage>
。同一页面中的所有其他 <o:xxx>
标记也将不起作用。
这可能有 2 个原因:
- Web 应用程序中未安装 OmniFaces。
- XHTML 页面中未声明 [=14=] XML 命名空间。
解决这个问题的正常程序是:
- 将 OmniFaces JAR 文件添加到
/WEB-INF/lib
(或让您的依赖项管理器执行此操作)。 - 将
xmlns:o="http://omnifaces.org/ui
添加到某些父元素。
验证工作:
从您的项目导出 WAR 文件并使用 ZIP 工具检查它时,物理 OmniFaces JAR 文件应该存在于
/WEB-INF/lib
文件夹中,并且应该有一个部署期间服务器日志中的如下行:INFO [org.omnifaces.ApplicationInitializer] Using OmniFaces version 2.6.8
生成的 HTML 输出中的任何地方都不应有
<o:xxx>
标记。