Omnifaces未映射资源处理程序防止Primefaces动态图像加载。

3
我在我的项目中使用了Omnifaces(非常棒的库)。这是一个基于JSF 2和Primefaces 4库运行在JBoss 7.2上的项目。我使用了<p:graphicImage />来从数据库中加载图像,我在互联网上找到了相关代码,且能够正常工作。
当我在我的项目中启用了Omnifaces的UnmappedResourceHandler之后,问题就出现了:虽然激活处理程序后,我可以通过名称从css中访问(其他)资源中的图像,但<p:graphicImage />中的图像加载不再起作用。调试代码,我只能看到一次请求内容的请求(没有未映射资源处理程序的请求为2)。
是否有任何解决方法?
谢谢!

问题已经理解,明天会修复。 - BalusC
哇,感谢迅速的支持!! - izio
1个回答

3
问题已经解决。 UnmappedResourceHandler 错误地期望 ResourceHandler#createResource() 会在这些类型的资源上返回null,以便它可以将调用委托给包装的资源处理程序。然而,它没有返回 null,最终导致响应中写入了一个空资源主体。
通过检查请求参数ln是否等于 "primefaces" 并且请求参数pfdrid不为null 来修复此问题。然后,UnmappedResourceHandler 将委托调用给包装的资源处理程序,即 PrimeResourceHandler
更改在提交8abfb8a中可见,并且按照 今天的1.8快照 提供。

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接