我一直面临Omnifaces 2.1
的问题。
我有一个图像类型byte[]
存储在我的数据库中,其中包含一个声明java类:
@Lob
private byte[] image;
在我的xhtml文件中,我在一个包含图像的类上有一个循环:
<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>
答案 0 :(得分:4)
当我执行此操作时,我没有图像,当检查元素时,我得到了结果:
<o:graphicimage value="[B@1aeef88" datauri="true"></o:graphicimage>
换句话说,<o:xxx>
标签根本不起作用。这不仅限于<o:graphicImage>
。同一页面中的所有其他<o:xxx>
代码也无效。
这可能有两个原因:
o
XML命名空间。解决此问题的正常程序是:
/WEB-INF/lib
(或让您的依赖管理器执行此操作)。xmlns:o="http://omnifaces.org/ui
添加到某个父元素。验证工作:
从项目导出WAR文件并使用ZIP工具检查它时,物理OmniFaces JAR文件应该出现在/WEB-INF/lib
文件夹中,并且在部署期间服务器日志中应该有如下所示的行:
INFO [org.omnifaces.ApplicationInitializer]使用OmniFaces 2.6.8版
生成的HTML输出中的任何位置都不应有<o:xxx>
个标记。