primefaces的selectonemenu的奇怪的規定
當你用到p:column來在selectOneMenu中創建列的時候,就會發現這個控件的column是不完善的,首先,beanproperty不能是字符串數組,比如
String[] str={"1","2"}
這樣綁定之後,無法創建列,此其一
如果你綁定了List類型的變量,然後你這樣指定格式
//name屬性為字符串
#{y.name}
這樣的代碼,一樣不生效,不會創建列,和沒指定column一樣
如果你這樣指定
//name屬性為字符串
如果你這樣指定,那麼你會看到下拉列表顯示的是每個變量的toString()返回值
//name屬性為字符串
但是如果你這樣指定,僅僅加個var="y",你會發現,下拉列表無法顯示數據了,就是點了那個下拉按鈕,下拉列表不會正確出現,就顯示一條很小的白框框
//name屬性為字符串
#{y.name}
但是如果你這樣指定,才會出現你要的效果,列正確的被創建,但是,這一切僅僅是在火狐浏覽器中。。。。。
如果你在IE下,就可能會出現錯誤,為什麼說可能,是因為有時候正確,錯誤現象有,下拉列表偏離正確位置非常遠,下拉列表非常寬,基本占據真個剩余空間
我認為,這是primefaces的一個BUG,目前primefaces5.1社區版,沒有修正這個錯誤。
所以,如果需要用到下拉列表,那就別用column創建列了。