2013-09-22 37 views
1

我試圖在JSF和Hibernate中實現分頁。無法從庫中找到或提供資源dataList.xhtml,org.apache.myfaces.custom

我在我的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斌 - 在所有戰爭文件/編譯 - 中/編譯/網絡/ WEB-INF/lib和戰斧-例子-1.1.14-bin中的jar文件/ web/WEB-INF/src/META-INF

但是,我收到此錯誤:無法從庫org.apache.myfaces.custom中查找或提供資源dataList.xhtml。 我該怎麼辦?

+0

某些Web服務器(apache,weblogic)已經包含JSF庫。如果您嘗試再次包含它們,則服務器容器將發生錯誤。 – Erick

回答

1

我認爲這是由Mojarra造成的(它讀取.taglib.xml時會感到困惑,即使是合法的語法來使用該文件用於複合和普通組件,在新的2.2規範中已經闡明)使用MyFaces JSF實現取而代之的是修復它。

+0

好的,謝謝。沒有其他出路嗎? – GobSmack

+0

不幸的是,沒有其他出路。如果他們沒有正確實現規範說明:(如果沒有正確實現規範,則保持與Mojarra兼容的庫是不可能的:) – lu4242

+0

謝謝,我將使用Myfaces進行嘗試,然後 – GobSmack

1

我相信這是一個戰斧問題。 的JSF 2.2規範提到了這一點:

如標記庫的facelet架構中指定,運行時也必須 支持composite-library-name元素。如第2.6.1.4節「本地化庫和 版本化資源」中所述,運行時必須將 解釋爲此元素的內容,作爲資源的名稱 庫。如果碰到包含此元素的小麪條標記庫描述符文件爲 ,則運行時必須檢查該相同標記庫描述符中的 元素,並使其可用於面部頁面中的XML名稱空間聲明。如果你想使用其他比 http://java.sun.com/jsf/composite/libraryName你需要有一個聲明composite-library-name一個 標籤庫文件中的命名空間的CC

而且也有這個用規範。目前您必須 未在這樣的taglib文件中聲明任何tag元素。 這樣的庫中的所有標籤必須來自相同的資源庫。

對於tomahawk,composite-library-name不指向資源(META-INF/resources下的目錄名稱),因此是錯誤。

這裏的簡單解決方案可能是從tomahawk.taglib.xml文件中刪除composite-library-name元素(如果它當然不需要用於任何其他目的)。但是我沒有測試過它。

+0

需要添加,但由OP報告的消息是警告對我來說,在Mojarra 2.2.10和Tomahawk20-1.1.4 –

+0

Tomahawk20-1.1.14似乎是在2012年10月23日建成的,從那以後(接近4年)該項目似乎並沒有更新。我猜這個問題不會被項目維護者修復。你(OP)可能會在PrimeFaces中找到一些將取代這個功能的東西。 – Pixelstix