Jsf 无法从库org.apache.myfaces.custom中找到或提供资源dataList.xhtml
我试图在JSF和Hibernate中实现分页 我的html页面上有这些语句Jsf 无法从库org.apache.myfaces.custom中找到或提供资源dataList.xhtml,jsf,pagination,tomahawk,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
<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-jar文件/build/web/web-INF/lib和tomahawk-examples-1.1.14-bin-war文件/build/web/web-INF/src/META-INF
但是,我遇到了这个错误:无法从org.apache.myfaces.custom库中找到或提供资源dataList.xhtml。
我该怎么办?我认为这是由Mojarra引起的(读取.taglib.xml会感到困惑,即使该文件用于复合组件和普通组件的语法是有效的,在新的2.2规范中有明确说明)使用MyFaces JSF实现来修复它。我认为这是一个战斧问题。 JSF 2.2规范提到了这一点: 正如facelet标记库模式中所指定的,运行时还必须 支持
复合库名称
元素。运行时必须
将此元素的内容解释为资源的名称
第2.6.1.4节“本地化和
版本化资源”。如果facelet标记库描述符文件
遇到包含此元素的,运行时必须检查
元素,并使其
可用于facelet页面中的XML命名空间声明
规范中也有这一点:
如果要使用命名空间不是
你需要有一个
声明组合库名称的taglib文件。目前你必须
不要在这样的taglib文件中声明任何标记
元素。所有的标签都在里面
这样的库必须来自同一个资源库
在tomahawk的例子中,复合库名称不指向资源(META-INF/resources下的目录名),因此会出现错误
这里的简单解决方案可能是从tomahawk.taglib.xml文件中删除
复合库名称
元素(当然,如果出于任何其他目的不需要)。不过,我还没有测试过。不幸的是,没有其他办法。如果Mojarra没有正确实现规范中所说的内容,那么保持库与Mojarra兼容是不可能的:(.谢谢,我将在Myfaces和一些web服务器(apache、weblogic)上试用它)已经包含JSF库。如果您再次尝试包含它们,服务器容器将给出一个错误。需要补充的是,OP报告的消息是Mojarra 2.2.10和Tomahawk20-1.1.4Tomahawk20-1.1.14上对我的警告,该项目似乎是在2012-10-23上构建的,并且此后没有更新(将近4年)。我猜这个问题不会被项目维护人员解决。你(OP)可能会在PrimeFaces中找到一些东西来取代这个功能。