2011-03-19 2 views
2

selectitem을 가진 selectOneMenu가 있습니다. 내가다른 jsf <f : selectItems> itemValue 및 메시지 번들 질문

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

을 사용하는 경우 는 지역화 된 라벨을 표시, 잘 작동합니다. List 내에서 더 많은 옵션을 사용할 수 있으며 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로서 : 상기 selectItem)의 키 표시 ('phoneType3') 대신 현지화 된 레이블을 사용하십시오.

내가 뭘 잘못하고 있는지 알 수 있습니까?

답변

4

번들 파일의 키가 무엇인지에 따라 다릅니다. item.value의 내용 IST 번들의 키는 다음을 수행하는 경우이 원래 코드의 경우

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

나는 모른다. 그렇다면, 다음과 같은주의 사항 :

  1. 당신은 (: 당신의 콩 이름으로 myBean 교체 위 을 같이) 당신의 value 속성에 백킹 빈 를 참조해야합니다.
  2. itemValue 속성뿐만 아니라 엘 표현이 필요합니다 : itemValue= "#{item.value}"
+0

안녕하세요 매트, 답변에 대한 감사,이 코드는 사용자 정의 facelet의 구성 요소이며, '값'속성이 매개 변수에서오고, 왜 먹으 렴 빈 이름이 없습니다. – gulygab

+0

내 문제는 동일한 'selectOneMenu' 내에서''는 레이블 값을 올바르게 표시하는 반면'' 'phoneType3'을 보여줍니다. – gulygab

+0

selectItems의 itemLabel 속성을 참조해야하기 때문입니다 단일 레이블이 아닌 _list_ 레이블. 따라서 '값'은 목록이어야합니다. 그렇지? –