2011-03-19 20 views
2

我有一個selectOneMenu和selectitems。 如果我使用另一個jsf <f:selectItems> itemValue和消息包問題

<f:selectItem itemValue="3" itemLabel="#{hrBundle['phoneType3']}"/> 

它工作正常,顯示本地化標籤。我在列表中有更多的選項,當我使用f:selectItems時,它停止工作。 此代碼:

<f:selectItems value="#{values}" var="item" itemLabel="#{hrBundle[item.label]}" itemValue="item.value"/> 

示出了鍵( 'phoneType3')作爲標籤,甚至

<f:selectItems value="#{values}" var="item" itemLabel="#{hrBundle['phoneType3']}" itemValue="item.value"/> 

( '硬編碼' 作爲單一F:上述選擇信息)顯示鍵( 'phoneType3' )而不是本地化的標籤。

任何想法我做錯了什麼?

回答

4

這取決於你的包文件中的密鑰是什麼。如果在你的包的密鑰IST的item.value內容,請執行下列操作:

<f:selectItems value="#{myBean.values}" 
var="item" 
itemLabel="#{hrBundle[item.value]}" 
itemValue="#{item.value}"/> 

我不知道,如果這是你原來的代碼。如果是的話,請注意以下事項:

  1. 您的value屬性來引用後臺bean (如上圖所示 :你 豆類名稱替換myBean)。
  2. itemValue屬性需要一個 EL表達式,以及:itemValue= "#{item.value}"
+0

喜馬特,感謝您的回答,這個代碼是在一個自定義的facelet組件和'value'屬性從參數到來,這就是爲什麼沒有bean名稱。 – gulygab 2011-03-21 10:07:26

+0

我的問題是,在同一個'selectOneMenu'中''正確顯示標籤值,而'shows'phoneType3' – gulygab 2011-03-21 10:13:42

+0

我認爲這是因爲selectItems中的itemLabel屬性必須引用一個標籤列表,而不是一個標籤。所以你的'價值'必須是一個列表。是嗎? – 2011-03-21 10:20:16