无法从库中找到或提供资源dataList.xhtml,org.apache.myfaces.custom

时间:2013-09-22 21:37:14

标签: jsf pagination tomahawk

我正在尝试在JSF和Hibernate中实现分页。

我在html页面上有这些陈述。

<html xmlns="http://www.w3.org/1999/xhtml" xmlns:h="http://java.sun.com/jsf/html" 
xmlns:ui="http://java.sun.com/jsf/facelets" xmlns:f="http://java.sun.com/jsf/core"
xmlns:t="http://myfaces.apache.org/tomahawk">

<t:dataList value="#{med.pages}" var="page">

我已经包含了tomahawk20-1.1.14-bin - / build / web / WEB-INF / lib和tomahawk-examples-1.1.14-bin中的jar文件 - / build / web / WEB中的所有war文件-INF / src / META-INF

但是,我收到此错误:无法从库中找到或提供资源dataList.xhtml,org.apache.myfaces.custom。 我该怎么办?

2 个答案:

答案 0 :(得分:1)

我认为它是由Mojarra引起的(它很难读取.taglib.xml,即使是将该文件用于复合和普通组件的有效语法,它在新的2.2规范中得到澄清)使用MyFaces JSF实现解决它。

答案 1 :(得分:1)

我认为这是一个战斧问题。 JSF 2.2规范提到了这一点:

  

如facelet taglibrary模式中所指定,运行时也必须   支持composite-library-name元素。运行时必须   将此元素的内容解释为资源的名称   第2.6.1.4节“本地化和本地化的库”中描述的库   版本化资源“。如果是facelet标记库描述符文件   遇到包含此元素的运行时必须检查    同一标签库描述符中的元素并使其成为可能   可用于facelet页面中的XML名称空间声明。

在规范中也有这个:

  

如果你想使用一个cc以外的命名空间   http://java.sun.com/jsf/composite/libraryName你需要有一个   声明composite-library-name的taglib文件。目前你必须   不要在这样的taglib文件中声明任何tag元素。所有的标签   这样的库必须来自同一个资源库。

对于tomahawk,composite-library-name不指向资源(META-INF / resources下的目录名),因此错误。

这里的简单解决方案可能是从tomahawk.taglib.xml文件中删除composite-library-name元素(如果当然不需要任何其他目的)。我没有测试过它。