2013-07-15 18 views
5

我試圖在primefaces選取列表中使用新的org.omnifaces.converter.ListConverter。 我添加了新的依賴在我使用Maven項目,以下載jar文件重建項目:屬性列表未定義在o:轉換器(Netbeans 7.3)

<dependency> 
    <groupId>org.omnifaces</groupId> 
    <artifactId>omnifaces</artifactId> 
    <version>1.5</version> 
</dependency> 

我進口我的小面的命名空間如下:

xmlns:o="http://omnifaces.org/ui" 

仍,當我嘗試在我的選擇列表使用<o:converter>如下:

<o:converter converterId="omnifaces.ListConverter" list="#{projectBean.clientSource}" /> 

我得到的NetBeans 7.3的消息說:

The attribute list is not defined in the component converter 

它似乎不會導致任何生成失敗,雖然... 我錯過了什麼嗎?我不使用omnifaces,因爲它的意思是?

回答

-1

第一次添加依賴項時,netbeans不會更新其名稱空間列表。

然後,

  1. 執行 「清理並生成」
  2. 在某些情況下,重新啓動Netbeans的

及其所有

同樣發生在我身上有omnifaces 1.7和Netbeans 7.3.1

+0

由於我發佈了這個問題,我必須重新啓動netbeans大約300次,並清理並構建了我的項目約3000次。它仍然顯示這個惱人的錯誤信息! –

3

不幸的是,這是「通過設計」。

Netbeans顯然是基於它們在*.taglib.xml文件中的註冊驗證屬性。

<o:converter>應該支持所有 attribtues任意轉換器,如pattern<f:convertDateTime>locale,所述minFractionDigits<f:convertNumber>integerOnly,等等。然而,要在*.taglib.xml文件中註冊所有這些屬性是不可能的,以便滿足<o:converter>的所有可能用例。它也支持自定義轉換器而不是標準轉換器。

然而,指定「自定義」標記屬性是有效的,這是<o:converter>依賴的標記屬性。 list屬性實際上是omnifaces.ListConverter轉換器的屬性。我沒有Netbeans在手,我不確定它是否將其解釋爲錯誤或警告,或者它是否可以在其驗證設置中的某處進行配置,但我可以向您保證這是絕對無害的,並且至多應該生成警告(因此不會成爲錯誤)。

如果您不理解<o:converter>的使用,它是一個特殊的標記處理程序,它在視圖渲染時間而不是視圖構建時間期間評估指定轉換器的屬性。這樣可以提供綁定到bean屬性的「動態」屬性,而不是硬編碼的字符串屬性。

+0

感謝這些信息。這確實是無害的,因爲我的應用程序運行良好,但netbeans將此視爲錯誤(以紅色加下劃線)。目前我還沒有找到讓netbeans忽略它的方法。還要感謝'omniface'的優秀工作,它可以節省很多時間! –

+0

Netbeans將其標記爲錯誤?哇,這有點過分。無論如何,不​​客氣。 – BalusC

1

我在netbeans中通過解壓縮omnifaces-2.1.jar解決了這個問題。

編輯omnifaces-2.1 \ META-INF \ omnifaces-UI-taglib.xml

查找器

添加屬性下轉換器:

<attribute> 
     <description> 
      <![CDATA[ 
       Model source list http://showcase.omnifaces.org/converters/ListConverter 
      ]]> 
     </description> 
     <name>list</name> 
     <required>false</required> 
     <type>java.lang.String</type> 
</attribute> 

就在< /標籤>。

將提取的內容(META-INF和組織文件夾)壓縮到onmifaces-2.1.jar中。

在netbeans中使用該jar。

+0

這確實是一種解決方法。但''在技術上支持未定義數量的屬性。 – BalusC