myfaces與mojarra(JSF RI)處理空屬性類型的不同

最近寫了一點JSF程序,在使用mojarra的時候沒有問題,但是改爲myfaces爲就會報錯,錯誤是ClassNotFoundException,但是沒說明到時是那個Class沒找到,這個問題搞了好久才發現原來是某個ManageBean的property的class設置爲空,如下:

<managed-property>
            <property-name>travel</property-name>
            <property-class></property-class>
            <value>#{travel}</value>
        </managed-property>

mojarra在處理這個空的property-class屬性時候,會自動辨別,若是空的,則自己會通過反射去查找class,而myfaces的處理則不同,他會傻傻的去加載一個空的class,而且這種錯誤很難找,系統沒辦法告訴我那個class沒有找到。我沒有看過jsf規範,不清楚規範怎麼規定這個的,不過可以看出JSF的兼容性只停留在理論上。

由於我使用的是eclipse的wtp可視化工具來編輯faces-config,這個工具比較垃圾,我若是沒選class的話,就設置一個空的,而不會不使用property-class屬性。看來可視化工具還是不好,還寫手寫的好,至少可以控制一切,尤其在java領域,工具還沒有VS studio那麼強大,很多時候,還是相信自己的手。

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章