0
剛剛發現在Java EE Documentation以下爲javax.faces.component.UISelectMany
:爲什麼UISelectMany不會將selectItems轉換爲對象列表?
使用以下算法獲取轉換器:如果組件 有一個附加的轉換器,使用它。如果不是 ,請查找值爲 的ValueExpression(如果有)。所述ValueExpression 必須指向東西是:
- 基元的陣列(如int [])。查找註冊的
類別轉換器對於此原始類型 類型。- 對象數組(例如Integer []或String [])。查找
註冊的類轉換器爲 基礎元素類型。- 一個java.util.Collection。不要轉換值。
爲了更好的理解,我想知道是什麼原因,如果ValueExpression是一個集合的值不會被轉換。
如果我想將轉換器附加到UISelectMany,是否需要爲集合或基礎元素類型編寫轉換器?
Hi BalusC。感謝你及時的答覆。從給定的鏈接相關的答案說清楚,我會試試這種方式。泛型教程的鏈接看起來不對(它重定向到相關的答案)? – 2011-03-22 14:45:39
不客氣。至於錯誤的鏈接,對不起,我的Ctrl + C沒有完成它的工作。我修好了它。 – BalusC 2011-03-22 14:47:35
是的,它的工作原理!偉大的工作,BalusC!但我不得不重寫'getAsObject'和'getAsString'方法。否則會出現如下轉換錯誤:Error Rendering View [/benutzer/Create.xhtml] java.lang.ClassCastException:jpa.entities.Benutzergruppe無法在javax.faces.convert.EnumConverter.getAsString中轉換爲java.lang.Enum – 2011-03-22 15:19:57