我正在尝试在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。 我该怎么办?
答案 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
元素(如果当然不需要任何其他目的)。我没有测试过它。